运行:Windows / Apache上的PHP 5.6.7
" array_key_exists"如果被搜索的键(针)是被搜索数组中的最后一个元素(haystack),则函数不会返回正确的结果。
echo phpversion(); echo "<br>";
var_dump($modulepriv_ass); echo "<br>"; var_dump($uploadpriv_ass); echo "<br>";
foreach($modulepriv_ass as $menuid) {
$fileuppriv = 0; echo $menuid ;
if (array_key_exists($menuid, $uploadpriv_ass)){
$fileuppriv = 1; echo " T";
} echo "<br>";
}
这是产生的输出:
5.6.7
array(10) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" [5]=> string(1) "6" [6]=> string(1) "7" [7]=> string(1) "8" [8]=> string(1) "9" [9]=> string(2) "10" }
array(5) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" }
1 T
2 T
3 T
4 T
5
6
7
8
9
10
显然关键&#34; 5&#34;应该有一个&#34; T&#34;在它的旁边。有人可以帮忙吗?
答案 0 :(得分:2)
不,不应该。 array_key_exists
检查键的存在,而不是值。您的$uploadpriv_ass
数组的最后一个键是4,并且您将值 5传递给array_key_exists
。由于未设置$uploadpriv_ass[5]
,因此您没有获得“T”。