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的意思
所以就會跑出"沒找到"的結果
*/

低溫烘培 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • ddman.cc
  • $array = array('A','B','C');
    if( !(false === array_search('A',$array)) )
    echo '找到了 ';
    else
    echo '沒找到';
  • TO:ddman.cc
    我想你應該是想提醒我使用「使用三個等號」對吧?的確,這點我沒考慮到,謝謝你

    低溫烘培 於 2010/08/24 17:01 回覆

【 X 關閉 】

【PIXNET 痞客邦】國外旅遊調查
您是我們挑選到的讀者!

填完問卷將有機會獲得心動好禮哦(注意:關閉此視窗將不再出現)

立即填寫取消