array_key_exists无法正常工作

时间:2015-05-26 13:31:29

标签: php

运行: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;在它的旁边。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

不,不应该。 array_key_exists检查的存在,而不是值。您的$uploadpriv_ass数组的最后一个键是4,并且您将 5传递给array_key_exists。由于未设置$uploadpriv_ass[5],因此您没有获得“T”。