PHP删除数组中指定值的元素常用方法实例分析【4种方法】

作者:dongxie548 时间:2024-06-05 09:51:58 

本文实例讲述了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程序设计有所帮助。

来源:https://blog.csdn.net/u011250882/article/details/48626053/

标签:PHP,数组,元素
0
投稿

猜你喜欢

  • vue封装一个弹幕组件详解

    2024-05-09 15:28:38
  • mysql 8.0.18 安装配置图文教程

    2024-01-21 09:46:33
  • Flask web开发处理POST请求实现(登录案例)

    2022-03-06 09:34:13
  • Python 中包/模块的 `import` 操作代码

    2021-07-10 02:52:20
  • Python可视化工具如何实现动态图表

    2023-05-22 19:21:27
  • 详解Python如何实现尾递归优化

    2023-11-13 04:20:06
  • python读取excel数据绘制简单曲线图的完整步骤记录

    2022-04-27 10:52:18
  • golang image图片处理示例

    2024-05-22 17:44:02
  • 使用python获取邮箱邮件的设置方法

    2021-08-07 05:52:58
  • ASP长文章分页代码实例

    2007-10-02 17:04:00
  • SQL SERVER备份数据库存储过程的方法

    2024-01-16 14:38:56
  • PHP写的求多项式导数的函数代码

    2023-09-10 05:42:56
  • Python实现按逗号分隔列表的方法

    2023-06-08 08:32:16
  • python解包概念及实例

    2022-07-01 11:30:03
  • Python中socket网络通信是干嘛的

    2023-12-16 02:57:03
  • MySQL数据库表修复 MyISAM

    2024-01-19 16:39:08
  • Pytorch搭建YoloV4目标检测平台实现源码

    2021-01-21 19:02:52
  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句

    2012-07-11 15:28:50
  • 教你利用Selenium+python自动化来解决pip使用异常

    2022-11-17 18:49:08
  • 动态载入asp树源码

    2007-09-06 19:34:00
  • asp之家 网络编程 m.aspxhome.com