php 删除一维数组中某一个值元素的操作方法

yipeiwu_com5年前PHP代码库

1. 自己写for循环

从array里去掉$tmp这个元素的值

<?php
$tmp = '324';
$arr = array(
'0' => '321',
'1' => '322',
'2' => '323',
'3' => '324',
'4' => '325',
'5' => '326',
);

代码

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
print_r($arr);
?>

此时

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [4] => 325
 [5] => 326
)

要重置索引,加上一句

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_values($arr);
print_r($arr);
?>

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

array_merge()也可以实现同样的效果

foreach( $arr as $k=>$v) {
 if($tmp == $v) unset($arr[$k]);
}
$arr = array_merge($arr);
print_r($arr);
?>

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

2.优先使用php自带函数,因为那是用C实现的,比自己写效率高。

使用array_search和array_splice,这里array_splice自动实现重置序列值。

$key=array_search($tmp ,$arr);
array_splice($arr,$key,1);
var_dump($arr);

此时结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

最佳实践

$arr = array_merge(array_diff($arr, array($tmp)));
var_dump($arr);

结果

Array
(
 [0] => 321
 [1] => 322
 [2] => 323
 [3] => 325
 [4] => 326
)

这里,如果数组元素是复杂数据结构,同样能够实现比较。当然数据本身仍然是一维的。

上面的例子中$tmp是一个值,如果$tmp是一个数组或者其他复杂数据结构,从$array中删除所有$tmp包含的元素,上面的方法同样有效

$arr = array_merge(array_diff($arr, $tmp));
var_dump($arr);

以上这篇php 删除一维数组中某一个值元素的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

Java和PHP在Web开发方面对比分析

Java和PHP在Web开发方面对比分析

比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:   一、 语言比较   PHP是解释执行的服务器脚本语言...

javascript,php获取函数参数对象的代码

例如: 复制代码 代码如下: function say () { alert (arguments[0]+'说:'+arguments[1]); } say ('fanglor','fa...

用php定义一个数组最简单的方法

如何用php定义一个数组? php中定义数组的方法: 1、PHP定义数组的格式: 数组名=array(); 如:$aa=array();//这样就定义了一个数组, 之后给元素赋值:...

PHP 编写的 25个游戏脚本

无论是一个人玩简单的使用纸和笔的游戏,还是同一群人玩复杂的桌面角色扮演游戏,或者任意类型的联机游戏,本系列都提供了适合您的内容。“用 PHP 可以编写的 30 个游戏脚本” 系列中的每篇...

详细对比php中类继承和接口继承

PHP类继承: 1、PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承 比如: class frist{ public function __construct...