如何将常量放在php

时间:2018-01-18 20:53:56

标签: php arrays wordpress

我需要在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 )工作正常,并在页面上显示所有作者。所以问题在于隐藏其他东西。

3 个答案:

答案 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; ?>

现在应该可以了! :)