php count返回1而不是实际数组长度

php count返回1而不是实际数组长度,php,arrays,Php,Arrays,我使用array_push创建了一个数组,它包含2个元素,count返回1。 为什么会这样 代码: $length = count($usersNoList) var_dump($usersNoList); echo "Length:".$length; 输出: array2{[0]=>string16 Kenyon Velazquez[1]=>string12 Seth Ellison}长度:1 完整代码: $usersNoList = array(); while($result = $r

我使用array_push创建了一个数组,它包含2个元素,count返回1。 为什么会这样

代码:

$length = count($usersNoList)
var_dump($usersNoList);
echo "Length:".$length;
输出:

array2{[0]=>string16 Kenyon Velazquez[1]=>string12 Seth Ellison}长度:1

完整代码:

$usersNoList = array();
while($result = $rawResult -> fetch_assoc()) {
    $user = new Utilisateur($result['IdUtilisateur'], $co);
    // looks for the user in those who have lists
    if($key = array_search($user -> getId(), $usersWithList) == FALSE) {
        // construct the array of names
        array_push($usersNoList, $user -> getPrenom()." ".$user -> getNom());
    } else {
        // remove this value from the array
        var_dump($usersWithList);
        array_splice($usersWithList, $key - 1, $key);
        var_dump($usersWithList);
    }
}
if($length = count($usersNoList) > 0){
        echo "
    <tr>
        <td>
            <p>Ces utilisateurs n'ont pas encore de liste : ";
        var_dump($usersNoList);
        echo "Length:".$length;
        for($i = 0; $i < $length; $i++){
            echo $usersNoList[$i].", ";
        }
        echo $usersNoList[$length - 1].".";
        echo "</p>
            </td>
        </tr>";
        }
$length接受布尔表达式count$usersNoList>0的值,该值为true。这就是为什么它的计算结果为1 true

只需在if语句之前声明并分配$length,以便在语句内部和条件中使用它。E.i:

$length = count($userNoList);

if($length > 0) {

    var_dump($usersNoList);
    echo "Length:".$length; // displays 2
}

@Jules的回答启发了我,让我想到添加括号,比如

if(($length = count($usersNoList)) > 0){
echo $length;
}
也可以。

您的问题是什么?你想做什么,你尝试了什么?对我来说很好,对我来说在本地主机上也很好,并且你在这段代码中有一个语法错误。所以这显然不是你的确切代码。请复制/粘贴,而不是尝试手动重新编写。在何处/如何定义$length?如果数组是多维的,则可能是行为@不客气。如果问题完全解决了,请考虑接受ANWSER,使POST显示得到解决。