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

作者:Lyndon1115 时间:2024-06-05 09:51:01 

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);

来源:http://blog.csdn.net/donglynn/article/details/50273297

标签:php,删除,一维数组,值,元素
0
投稿

猜你喜欢

  • python 第三方库的安装及pip的使用详解

    2023-12-27 07:06:53
  • 在pycharm中创建django项目的示例代码

    2023-04-07 17:39:25
  • python中Mako库实例用法

    2022-01-05 16:38:21
  • vue中巧用三元表达式解析

    2024-05-28 16:03:27
  • python数据类型_字符串常用操作(详解)

    2023-10-12 05:02:57
  • vue设计一个倒计时秒杀的组件详解

    2024-05-09 10:41:55
  • CSS hacks与争议

    2007-11-19 12:56:00
  • python编程学习使用管道Pipe编写优化代码

    2023-08-20 04:08:45
  • python如何利用cv2.rectangle()绘制矩形框

    2021-03-14 10:12:51
  • 从0到1构建vueSSR项目之路由的构建

    2024-05-09 09:52:33
  • WebStorm 遇到的问题总结

    2023-08-31 23:30:00
  • PHP最常用的正则表达式

    2024-05-03 15:34:38
  • Python实现列表拼接和去重的三种方式

    2021-05-02 23:43:54
  • python面试题之列表声明实例分析

    2022-01-10 12:46:51
  • Python os模块介绍

    2023-02-04 11:28:15
  • word-wrap同word-break的区别

    2007-10-24 20:08:00
  • 详解用python -m http.server搭一个简易的本地局域网

    2023-09-29 13:03:34
  • 使用SQL Server判断文件是否存在后再删除(详解)

    2024-01-19 13:03:33
  • 人工智能学习Pytorch教程Tensor基本操作示例详解

    2021-06-14 17:39:22
  • python函数装饰器构造和参数传递

    2023-05-24 16:49:17
  • asp之家 网络编程 m.aspxhome.com