我想从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);
}
太难看了?或者它会起作用(没有任何令人震惊的副作用)?
答案 0 :(得分:6)
此功能已存在;看看unset
。
http://php.net/manual/en/function.unset.php
$a = array('foo' => 'bar', 'bar' => 'gork');
unset($a['bar']);
print_r($a);
输出将是:
array( [foo] => bar )
答案 1 :(得分:1)
array_filter
函数使用回调函数只从数组中选择所需的值。
答案 2 :(得分:1)
你想要一个未设定值。循环遍历数组并按值取消键。
答案 3 :(得分:0)
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);
答案 4 :(得分:0)
unset($my_array['element']);
不行吗?
答案 5 :(得分:0)
此代码可以由单个array_filter($ arr)调用替换