国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP刪除數組中指定值的元素常用方法實例分析

2024-09-04 11:46:42
字體:
來源:轉載
供稿:網友

本文實例講述了PHP刪除數組中指定值的元素。分享給大家供大家參考,具體如下:

測試數組如下:

  1. //這是一個測試數組 
  2. $testArr = array
  3.   't' => 'qq'
  4.   'q' => 'qq'
  5.   'b' => 'baidu'
  6.   'a' => 'ali'
  7.   'm' => 'xiaomi' 
  8. ); 

方法一:

foreach遍歷后unset刪除,這種方法也是最容易想到的方法.

  1. function delByValue($arr$value){ 
  2.   if(!is_array($arr)){ 
  3.     return $arr
  4.   } 
  5.   foreach($arr as $k=>$v){ 
  6.     if($v == $value){ 
  7.       unset($arr[$k]); 
  8.     } 
  9.   } 
  10.   return $arr

測試:

  1. $testArr = delByValue($testArr,'baidu'); 
  2. print_r($testArr

運行結果:

  1. Array 
  2.     [t] => qq 
  3.     [q] => qq 
  4.     [a] => ali 
  5.     [m] => xiaomi 

方法二:

array_flip之后unset,這種方法有一個弊端,就是反轉后由于有兩個鍵值都為qq,有一個數據將會丟失,所以在使用時請謹慎).

  1. function delByValue($arr$value){ 
  2.   $tempArr = array_flip($arr); 
  3.   unset($tempArr[$value]); 
  4.   return array_flip($tempArr); 

測試:

  1. $testArr = delByValue($testArr,'baidu'); 
  2. print_r($testArr

運行結果:

  1. Array 
  2.     [q] => qq 
  3.     [a] => ali 
  4.     [m] => xiaomi 

方法三:

array_search,這種方法亦有弊端,array_search搜索到一個合適的值時便返回,所以在數組存在多個相關的值這種方法不適用).

  1. function delByValue($arr$value){ 
  2.   $key = array_search($value,$arr); 
  3.   if(isset($key)){ 
  4.     unset($arr[$key]); 
  5.   } 
  6.   return $arr

測試:

$testArr = delByValue($testArr,'baidu');

print_r($testArr)

運行結果:

  1. Array 
  2.     [t] => qq 
  3.     [q] => qq 
  4.     [a] => ali 
  5.     [m] => xiaomi 

方法四:

使用array_keys搜索指定的值再循環unset)

  1. function delByValue($arr$value){ 
  2.   $keys = array_keys($arr$value); 
  3.   var_dump($keys); 
  4.   if(!emptyempty($keys)){ 
  5.     foreach ($keys as $key) { 
  6.       unset($arr[$key]); 
  7.     } 
  8.   } 
  9.   return $arr

測試:

  1. $testArr = delByValue($testArr,'baidu'); 
  2. print_r($testArr

運行結果:

  1. array(1) { 
  2.   [0]=> 
  3.   string(1) "b" 
  4. Array 
  5.     [t] => qq 
  6.     [q] => qq 
  7.     [a] => ali 
  8.     [m] => xiaomi 

四種方法總結下來,真正比較可行的還是方法1和方法4了,至于這兩種方法哪個更好,那就應該是具體情況具體分析了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天全县| 曲靖市| 江孜县| 栾城县| 定安县| 白玉县| 江津市| 乐亭县| 马山县| 龙胜| 明光市| 广汉市| 迁西县| 从江县| 天门市| 萍乡市| 朝阳市| 吉木乃县| 三河市| 静宁县| 文昌市| 共和县| 蓝山县| 高尔夫| 茂名市| 元江| 荔浦县| 宜都市| 凌云县| 闸北区| 营山县| 固始县| 凤城市| 调兵山市| 韶山市| 游戏| 宁远县| 蒙自县| 乐亭县| 托克逊县| 建德市|