Php 在多维数组中找不到严格的指针
我有一段代码如下所示:Php 在多维数组中找不到严格的指针,php,Php,我有一段代码如下所示: if(array_key_exists('uid',$_SESSION)){ $userdata->readUser($_SESSION['uid']); $ACL = new ACL($_SESSION['uid']); $userPerms = $ACL->setACL(); if(!in_array_r("adminUI",$userPerms['perms'],true)){ echo "Cou
if(array_key_exists('uid',$_SESSION)){
$userdata->readUser($_SESSION['uid']);
$ACL = new ACL($_SESSION['uid']);
$userPerms = $ACL->setACL();
if(!in_array_r("adminUI",$userPerms['perms'],true)){
echo "Couldnt fine adminUI in:";
var_dump($userPerms['perms']);
}
}
而in_array_r函数是:
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
我从中得到:
然而,这项研究的结果表明:
Couldnt fine adminUI in:
array(2) {
[0]=>
array(1) {
["perm_desc"]=>
string(7) "adminUI"
}
[1]=>
array(1) {
["perm_desc"]=>
string(9) "apiAccess"
}
}
如果我将函数更改为不严格检查阵列,它将找到针,但严格检查失败
我正把头撞到桌子上想弄明白这件事
编辑
JanSchejbal非常棒,他指出这段代码工作得非常好。我没有足够的条理来理解我的工作目录。再次感谢Jan Schejbal。我最初将此作为评论发布,但由于它确实是问题的答案 如果您有一个完全的WTF错误:
1号是导致无法解释的错误的最常见原因之一。我无法重现该问题。使用显示不可打印字符的编辑器检查文件,修复错误消息中的键入错误,然后再次运行程序。如果显示的错误信息有拼写错误,说明您运行的是旧版本,或者有错误信息生成代码的另一份副本。哇……。我几乎不好意思承认我的错误。我正在编辑github版本,而不是测试环境。我可以感谢你无数次。我将把它归咎于睡眠不足,Aptana没有提醒我打开了一个本地文件和一个服务器版本。作为答案添加了它。这是每个人都会犯的错误(猜猜我是怎么想到的…)。