如何使用一个foreach php从数组中删除某些元素
有没有办法让代码看起来像这样如何使用一个foreach php从数组中删除某些元素,php,array-splice,Php,Array Splice,有没有办法让代码看起来像这样 foreach ($a as $key=>$value) { if (( $value['someprop'] == 'some prop' ) || ( $value['someprop'] == 'some other prop' )) array_splice($a, $key, 1); 因为数组键是使用for循环随数组拼接移位的,从数组末尾开始倒数: (这样,您就不会因为索引的更改而遇到麻烦) 使用更优雅的阵列过滤器: $a
foreach ($a as $key=>$value) {
if (( $value['someprop'] == 'some prop' ) || ( $value['someprop'] == 'some other prop' ))
array_splice($a, $key, 1);
因为数组键是使用for循环随数组拼接移位的,从数组末尾开始倒数: (这样,您就不会因为索引的更改而遇到麻烦)
使用更优雅的
阵列过滤器
:
$a = [
['someprop' => 'some prop'],
['someprop' => 'not some prop'],
['someprop' => 'some other prop'],
];
方法:
$filtered = array_filter($a, function($value) {
return !($value['someprop'] == 'some prop' || $value['someprop'] == 'some other prop');
});
打印(已过滤):
您能重新表述您的问题吗?您想做什么?您将键和值拆分为
$key=>$value
那么为什么$value['someprop']
?仅仅是$value
还不够吗?@VijayaSankarN它看起来不是很整洁,不是。也许它是一个数组数组?我认为索引从count($a)-1到0也不错,我想这只是使用PHP开发时“需要知道的事情”之一。
$filtered = array_filter($a, function($value) {
return !($value['someprop'] == 'some prop' || $value['someprop'] == 'some other prop');
});
Array
(
[1] => Array
(
[someprop] => not some prop
)
)