[英]array_key_exists not working correctly
運行:Windows / Apache上的PHP 5.6.7
如果要搜索的鍵(針)是要搜索的數組(干草堆)中的最后一個元素,則“ array_key_exists”函數不會返回正確的結果。
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
顯然,鍵“ 5”旁邊應該有一個“ T”。 有人可以幫忙嗎?
不,不應該。 array_key_exists
檢查是否存在鍵 ,而不是值。 $uploadpriv_ass
數組的最后一個鍵是4,並將5的值傳遞給array_key_exists
。 由於未設置$uploadpriv_ass[5]
,因此不會得到“ T”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.