下面小编就为大家分享一篇php 删除一维数组中某一个值元素的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1. 自己写for循环
从array里去掉$tmp这个元素的值
1 2 3 4 5 6 7 8 9 10 | <?php
$tmp = '324';
$arr = array (
'0' => '321',
'1' => '322',
'2' => '323',
'3' => '324',
'4' => '325',
'5' => '326',
);
|
登录后复制
代码
1 2 3 4 5 | foreach ( $arr as $k => $v ) {
if ( $tmp == $v ) unset( $arr [ $k ]);
}
print_r( $arr );
?>
|
登录后复制
此时
1 2 3 4 5 6 7 8 | Array
(
[0] => 321
[1] => 322
[2] => 323
[4] => 325
[5] => 326
)
|
登录后复制
要重置索引,加上一句
1 2 3 4 5 6 | foreach ( $arr as $k => $v ) {
if ( $tmp == $v ) unset( $arr [ $k ]);
}
$arr = array_values ( $arr );
print_r( $arr );
?>
|
登录后复制
此时结果
1 2 3 4 5 6 7 8 | Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
|
登录后复制
登录后复制
登录后复制
登录后复制
array_merge()也可以实现同样的效果
1 2 3 4 5 6 | foreach ( $arr as $k => $v ) {
if ( $tmp == $v ) unset( $arr [ $k ]);
}
$arr = array_merge ( $arr );
print_r( $arr );
?>
|
登录后复制
此时结果
1 2 3 4 5 6 7 8 | Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
|
登录后复制
登录后复制
登录后复制
登录后复制
2.优先使用php自带函数,因为那是用C实现的,比自己写效率高。
使用array_search和array_splice,这里array_splice自动实现重置序列值。
1 2 3 | $key = array_search ( $tmp , $arr );
array_splice ( $arr , $key ,1);
var_dump( $arr );
|
登录后复制
此时结果
1 2 3 4 5 6 7 8 | Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
|
登录后复制
登录后复制
登录后复制
登录后复制
最佳实践
1 2 | $arr = array_merge ( array_diff ( $arr , array ( $tmp )));
var_dump( $arr );
|
登录后复制
结果
1 2 3 4 5 6 7 8 | Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
|
登录后复制
登录后复制
登录后复制
登录后复制
这里,如果数组元素是复杂数据结构,同样能够实现比较。当然数据本身仍然是一维的。
上面的例子中$tmp是一个值,如果$tmp是一个数组或者其他复杂数据结构,从$array中删除所有$tmp包含的元素,上面的方法同样有效
1 2 | $arr = array_merge ( array_diff ( $arr , $tmp ));
var_dump( $arr );
|
登录后复制
以上这篇php 删除一维数组中某一个值元素的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持php中文网。
您可能感兴趣的文章:
PHP实现对图片的反色处理功能php技巧
php通过pecl方式安装扩展的实例讲解php技巧
php学习笔记之mb_strstr的基本使用php技巧
以上是php 删除一维数组中某一个值元素的操作方法php技巧的详细内容。更多信息请关注PHP中文网其他相关文章!