这是今天第二次在编码时发生这种情况,而且我感到非常沮丧,因为我看不出我做错了什么
在下面的代码中,$_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
是一个数组,不是吗?为什么$i
将print_r($i)
作为数组回显?
非常感谢任何帮助!
谢谢!
乔
答案 0 :(得分:0)
我尝试在循环之前重新初始化$ i:
$i = array();
这不起作用。然后我尝试输入杂耍:
$j = (array) $i;
这确实有效。很奇怪PHP就是这样做的。