2 回答

TA貢獻1804條經驗 獲得超8個贊
根據array_search文檔中的注釋:
警告:此函數可能返回布爾值 FALSE,但也可能返回計算結果為 FALSE 的非布爾值。請閱讀有關布爾值的部分以 獲取更多信息。使用=== 運算符來測試此函數的返回值。
在您的情況下,green值的索引為 0。在 if 語句中,0 表示 false。為了解決這個問題,你需要對 array_search 返回的值進行嚴格的類型檢查,如下所示。
if ($found_key !== false) { // strict type check
print_r("Y");
} else {
print_r("N");
}

TA貢獻1826條經驗 獲得超6個贊
您也可以使用in_array()功能。
$people = array(
0 => array(
'name' => 'John',
'fav_color' => 'green'
),
1=> array(
'name' => 'Samuel',
'fav_color' => 'blue'
)
);
$found_key = in_array('green', array_column($people, 'fav_color'));
if($found_key){
print_r("Y");
}else{
print_r("N");
}
- 2 回答
- 0 關注
- 166 瀏覽
添加回答
舉報