PHP认为数组是一个整数

时间:2016-12-22 00:12:17

标签: php arrays multidimensional-array casting integer

这是今天第二次在编码时发生这种情况,而且我感到非常沮丧,因为我看不出我做错了什么

在下面的代码中,$_SESSION['groupData']是一个多维数组。

foreach($_SESSION['groupData'] as $i){
    echo "<pre>";
    print_r($i);
    echo "<pre>";

    if(in_array($_SESSION['uid'], $i)){

        echo $i['cn'][0];   
    }
}

以下是$i的输出(每个循环1 ARRAY

Array
(
    [cn] => Array
        (
            [count] => 1
            [0] => SSO Administrators
        )

    [0] => cn
    [uniquemember] => Array
        (
            [count] => 10
            [0] => u1
            [1] => u2

        )

    [1] => uniquemember
    [count] => 2
    [dn] => cn=blah
)


Array
(
    [cn] => Array
        (
            [count] => 1
            [0] => group
        )

    [0] => cn
    [uniquemember] => Array
        (
            [count] => 10
            [0] => u1
            [1] => u2

        )

    [1] => uniquemember
    [count] => 2
    [dn] => cn=blank
)


Array
(
    [cn] => Array
        (
            [count] => 1
            [0] => bork
        )

    [0] => cn
    [uniquemember] => Array
        (
            [count] => 10
            [0] => u1
            [1] => u2

        )

    [1] => uniquemember
    [count] => 2
    [dn] => cn=blah
)

但是它给了我错误

  

&#34;警告:in_array()期望参数2为数组,给定整数&#34;

$i是一个数组,不是吗?为什么$iprint_r($i)作为数组回显?

非常感谢任何帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

我尝试在循环之前重新初始化$ i:

$i = array();

这不起作用。然后我尝试输入杂耍:

$j = (array) $i;

这确实有效。很奇怪PHP就是这样做的。