繁体   English   中英

从数组中删除元素(PHP)

[英]Removing an element from an array (PHP)

我想从PHP数组中删除一个元素(并缩小数组大小)。 仅查看PHP文档,似乎可以使用array_slice()和array_merge()完成此操作

所以我猜(不由自主地),array_merge()和array_slice的某种组合可以工作。 但是,array_slice()需要一个索引(而不是键),所以我不确定如何快速将这些函数拼凑在一起以获得解决方案。

有人曾经实现过这样的功能吗? 我敢肯定它只有几行长,但我无法以某种方式绕开它(那是那段日子之一)...

实际上,在撰写此问题时,我只是想出了这个俗气的技巧。

function remove_from_array(array $in, value) {
   return array_diff($in, (array)$value);
}

太丑了? 还是会起作用(没有任何令人震惊的副作用)?

该功能已经存在; 看看unset

http://php.net/manual/zh/function.unset.php


$a = array('foo' => 'bar', 'bar' => 'gork');
unset($a['bar']);
print_r($a);

输出将是:

array(
[foo] => bar
)

array_filter函数,它使用回调函数从数组中仅选择所需的值。

您想要按值取消设置。 遍历数组并按值取消设置键。

foreach($array as $key => $value) {
    if($value == "" || $value == " " || is_null($value)) {
        unset($array[$key]);
    }
}

/*
and if you want to create a new array with the keys reordered accordingly...
*/
$new_array = array_values($array);
unset($my_array['element']);

不行吗

此代码可以由单个array_filter($ arr)调用代替

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM