本文實例講述了PHP刪除數組中指定值的元素。分享給大家供大家參考,具體如下:
測試數組如下:
//這是一個測試數組$testArr = array( 't' => 'qq', 'q' => 'qq', 'b' => 'baidu', 'a' => 'ali', 'm' => 'xiaomi');
方法一:
//foreach遍歷后unset刪除,這種方法也是最容易想到的方法function delByValue($arr, $value){  if(!is_array($arr)){    return $arr;  }  foreach($arr as $k=>$v){    if($v == $value){      unset($arr[$k]);    }  }  return $arr;}測試:
$testArr = delByValue($testArr,'baidu');print_r($testArr)
運行結果:
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
方法二:
//array_flip之后unset,這種方法有一個弊端,就是反轉后由于有兩個鍵值都為qq,有一個數據將會丟失,所以在使用時請謹慎)function delByValue($arr, $value){  $tempArr = array_flip($arr);  unset($tempArr[$value]);  return array_flip($tempArr);}測試:
$testArr = delByValue($testArr,'baidu');print_r($testArr)
運行結果:
Array
(
[q] => qq
[a] => ali
[m] => xiaomi
)
方法三:
//array_search,這種方法亦有弊端,array_search搜索到一個合適的值時便返回,所以在數組存在多個相關的值這種方法不適用)function delByValue($arr, $value){  $key = array_search($value,$arr);  if(isset($key)){    unset($arr[$key]);  }  return $arr;}測試:
$testArr = delByValue($testArr,'baidu');print_r($testArr)
運行結果:
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
方法四:
//使用array_keys搜索指定的值再循環unset)function delByValue($arr, $value){  $keys = array_keys($arr, $value);  var_dump($keys);  if(!empty($keys)){    foreach ($keys as $key) {      unset($arr[$key]);    }  }  return $arr;}測試:
$testArr = delByValue($testArr,'baidu');print_r($testArr)
運行結果:
array(1) {
[0]=>
string(1) "b"
}
Array
(
[t] => qq
[q] => qq
[a] => ali
[m] => xiaomi
)
四種方法總結下來,真正比較可行的還是方法1和方法4了,至于這兩種方法哪個更好,那就應該是具體情況具體分析了。
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選