PHP删除数组中指定值的元素常用方法实例分析【4种方法】
作者:dongxie548 发布时间:2024-06-05 09:51:58
标签:PHP,数组,元素
本文实例讲述了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/


猜你喜欢
- 简述一开始觉得这个很有趣,然后就想来做一个来玩一下使用语言: Python3使用工具:opencv视频监控 + socket数据传输技术程序
- wp_mail() 函数用来发送邮件,类似于 PHP 的 mail() 函数。默认的发件人名称是 WordPress,发件人邮箱是类似 wo
- 假设我们要添加一个我们自己的Middleware,用来记录每次请求的日志下面就是一个符合规范的Middleware, 构造函数中接受一个WS
- 有这样一个经历,服务器挂掉了,请工程师维护,为了安全,工程师进行核心操作时,直接关掉显示器进行操作,完成后,再打开显示器,进行收尾工作...
- 这篇文章主要介绍了python3 tcp的粘包现象和解决办法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束
- 如下所示:import sysfrom PyQt5 import QtCore,QtGuifrom PyQt5.QtWidgets impo
- 一、项目视图分析通过上图,我们可以看到,一个完整的项目,基本包括三个部分:用户视图层、接口层、数据处理层,其中,用户视图层是用来接收用户的数
- 监测主机存活的端口#!/usr/bin/env python# coding-utfimport argparseimport socket
- 下面请看本文详细介绍.Perl字符串处理函数1. index语法:position=index(string,substring,posit
- 1、首先访问http://www.python.org/download/去下载最新的python版本。2、安装下载包,一路next。3、为
- 均匀性度量图像分割是图像像素分割的一种方法,当然还有其他很多的方法。这里简单的介绍下其原理和实现代码【有源码】其流程大概分为一下几步1、确定
- 1998年,W3C发布HTML 4.0 Specification,里面清清楚楚的写了每个标签的用法和语义。搜索引擎的算法参考了W3C的语义
- QQ登录Banner增加了剧情的概念之后,已经推出了春节和情人节两期。这之后设想能围绕Banner做的更加丰富,对传统文化的体现也能更为深入
- Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的
- 一、媒体管道1.1、媒体管道的特性媒体管道实现了以下特性:避免重新下载最近下载的媒体指定存储位置(文件系统目录,Amazon S3 buck
- 本文主要介绍了Vue动态修改title的方法,需要的朋友可以参考学习,方法如下:1.通过自定义指令去修改(单个修改比较好)//1.在main
- 也许光从字面上来说,版式设计中的“亲密性”似乎不太好理解,正常的情况下,我们都会把“亲密性”理解为人与人之间的关系的一种表现,事实上在版式设
- 本文实例讲述了Python实现计算文件MD5和SHA1的方法。分享给大家供大家参考,具体如下:不多说,直接源码:#file md5impor
- 一、MySQL的体系结构① 结构图② 各结构的功能连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方