天天看點

PHP删除Array數組裡指定的key(完整版,已封裝成函數,附測試代碼)

問題背景:array裡一般是key---value的存儲方式,我們有時候需要删除指定的key及對應的value。但是不知道為啥,那麼多文章都是在講知道value,并删除該value的事情,差點誤導我。

現将我寫的完整版代碼附下:

function array_remove($data, $key){
    if(!array_key_exists($key, $data)){
        return $data;
    }
    $keys = array_keys($data);
    $index = array_search($key, $keys);
    if($index !== FALSE){
        array_splice($data, $index, 1);
    }
    return $data;

}
$data = array('name'=>'apple','age'=>12,'address'=>'ChinaGuangZhou');
$result = array_remove($data, 'name');
var_dump($result);
           

補充說明:

1,其實問題出在array_search這個函數上,這個函數按照value去搜尋,得到位置,如果找不到就傳回NULL或false;

2,是以,在按key進行查找key對應的位置時,需要在$keys裡去找,這就是調用array_keys的原因

3,因為array_search這個函數可能傳回NULL和false,是以得按絕對比較,使用!==

參考:

php官方文檔:http://www.php100.com/cover/php/189.html

歡迎大家加入PHP CodeIgniter社群群:460132647    備注:yanzi