[英]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.