in_array()的用途,是來判斷某個值是否存在陣列之中,回傳的結果就只有true或false。但是有時候我們除了要判斷他是否有在陣列中外,又要順便異動這個陣列元素,比如說「搜尋陣列中值為D的元素,並刪除他」,這時候我們就可以使用array_search()來完成這個工作。
//================== // 刪除陣列中的D元素 //================== //建立測試陣列 $array = array('A','B','B','D','A','C','A'); //舊的方式 foreach($array as $key => $value){ if($value = 'D'){ unset($array[$key]); } } //新的方式 unset($array[array_search('D',$array)]);
另外注意一點,雖然array_search()會回傳陣列key,如果要使用它來判斷陣列是否有某個值時,請注意不要寫下列的方式。
$array = array('A','B','C'); if(array_search('A',$array)) { echo '找到了'; } else { echo '沒找到'; } /* 執行結果為:"沒找到" 事實上是有找到,只不過他回傳的key值為0 也就是第一個,但是在PHP中,0有false的意思 所以就會跑出"沒找到"的結果 */
全站熱搜
留言列表