我需要在WordPress页面上获取作者的数量。首先,这个问题不涉及WordPress语法或更多关于此CMS的内容。问题严格来说是php
算法。
所以,我通过方法10
得到了foreach
个元素。现在我必须将它们放在数组$getcount
中,以便用count
语言中的数组方法php
进行计数。
由于某些原因,方法count
不起作用,因为我总是得到else
结果。
<?php foreach ($coauthors_meta as $key ) :
$getcount = array($key);
if (count($getcount) > 1) echo '<div class="privv">Hello!</div>';
else echo 'Empty';
<?php endforeach; ?>
P.S。
数组方法foreach ($coauthors_meta as $key )
工作正常,并在页面上显示所有作者。所以问题在于隐藏其他东西。
答案 0 :(得分:5)
您每次创建一个包含一个元素的数组,然后检查它是否包含多个元素。
<?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 '<div class="privv">Hello!</div>';
else echo 'Empty';
<?php endforeach; ?>
更改:
$getcount = array($key);
要
$getcount[] = $key;
答案 1 :(得分:2)
问题: - 您只为$getcount
内的foreach()
变量分配单个值(一次又一次重新创建变量和当前分配给它的价值)。
解决方案: - 重建如下逻辑: -
//empty array declaration
<?php $getcount = [];?>
<?php foreach ($coauthors_meta as $key ) :
$getcount[] = $key;//assign values to the array
if (count($getcount) > 1) echo '<div class="privv">Hello!</div>';
else echo 'Empty';
<?php endforeach; ?>
答案 2 :(得分:1)
你做错了(看起来如此),就是你在每个foreach循环中创建一个新数组并将其中一个键分配到其中:
<?php foreach ($coauthors_meta as $key ) :
$getcount = array($key); // <---- You are creating a new array!
if (count($getcount) > 1) echo '<div class="privv">Hello!</div>';
else echo 'Empty';
<?php endforeach; ?>
要解决此问题,只需在foreach之前定义数组,然后将值推送到数组:
<?php
$getcount = array();
foreach ($coauthors_meta as $key ) :
$getcount[] = $key;
if (count($getcount) > 1) echo '<div class="privv">Hello!</div>';
else echo 'Empty';
<?php endforeach; ?>
现在应该可以了! :)