如何将常量放在php中的数组中

How to put constant in an array in php

我需要在WordPress页面上统计作者的数量。首先,这个问题不涉及WordPress语法或关于CMS的更多内容。这个问题是关于php算法的。

所以,我用方法foreach得到了10元素。现在我必须把它们放在数组$getcount中,才能用php语言的数组方法count计算它们。

由于某些原因,方法count不起作用,因为我总是得到else的结果。

1
2
3
4
5
<?php foreach ($coauthors_meta as $key ) :  
    $getcount = array($key);
    if (count($getcount) > 1) echo 'Hello!';
    else echo 'Empty';
<?php endforeach; ?>

附笔。数组方法foreach ($coauthors_meta as $key )工作良好,在页面上显示所有作者。所以问题就隐藏在其他方面。


您每次创建一个元素数组,然后检查它是否有多个元素。

1
2
3
4
5
6
<?php foreach ($coauthors_meta as $key ) :  
    $getcount = array($key); // << always makes an array with one element
    // count will always be 1 so the else condition will always happen
    if (count($getcount) > 1) echo 'Hello!';
    else echo 'Empty';
<?php endforeach; ?>

更改:

1
$getcount = array($key);

1
$getcount[] = $key;


问题:您只给foreach()中的$getcount变量分配一个值(变量一次又一次地重新创建,当前值分配给它)。

解决方案:-如下重建逻辑:

1
2
3
4
5
6
7
//empty array declaration
<?php $getcount = [];?>
<?php foreach ($coauthors_meta as $key ) :  
    $getcount[] = $key;//assign values to the array
    if (count($getcount) > 1) echo 'Hello!';
    else echo 'Empty';
<?php endforeach; ?>


您所做的错误(如图所示)是,您正在每个foreach循环创建一个新数组,并为其分配一个键:

1
2
3
4
5
<?php foreach ($coauthors_meta as $key ) :  
    $getcount = array($key); // <---- You are creating a new array!
    if (count($getcount) > 1) echo 'Hello!';
    else echo 'Empty';
<?php endforeach; ?>

要解决此问题,只需在foreach之前定义数组,并将值推送到数组:

1
2
3
4
5
6
7
<?php
    $getcount = array();
    foreach ($coauthors_meta as $key ) :  
    $getcount[] = $key;
    if (count($getcount) > 1) echo 'Hello!';
    else echo 'Empty';
<?php endforeach; ?>

现在应该可以了!:)