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; ?> |
更改:
号
到
问题:您只给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; ?> |
。
现在应该可以了!:)