百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> PHP删除数组中指定值的元素常用办法实例剖析
分享文章到:

PHP删除数组中指定值的元素常用办法实例剖析

发布时间:05/20 来源:未知 浏览: 关键词:

本文实例讲述了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了,至于这两种办法哪个更好,那就应当是详细状况详细剖析了。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有159人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板