通过检查值php删除数组元素



我有一个数组,如下

[0=>['classId'=>2,'Name'=>'John'],1=>['classId'=>3,'Name'=>'Doe'],2=>['classId'=>4,'Name'=>'Stayne']]

我需要从数组中删除classId为2或4的元素,预期结果应该是

[0=>['classId'=>3,'Name'=>'Doe']]

如果不使用循环,我将如何实现这一点。希望有人能帮助

您可以将array_filterin_array结合使用。

$array = [0=>['classId'=>2,'Name'=>'John'],1=>['classId'=>3,'Name'=>'Doe'],2=>['classId'=>4,'Name'=>'Stayne']];
var_dump(
array_filter($array, function($item){return !in_array($item["classId"], [2,4]);})
);

解释

array_filter

如果回调函数返回false,则从数组中删除元素。

in_array

在数组中搜索值;如果未找到值,则返回布尔值true/false。

试试这个:

foreach array as $k => $v{
if ($v['classId'] == 2){
unset(array[$k]);
}
}

我刚刚看到你的编辑,你可以这样使用array_filter:

function class_filter($arr){
return ($arr['classId'] == "whatever");
}
array_filter($arr, "class_filter");

注意:我相信您仍然需要循环遍历一个多维数组。

相关内容

  • 没有找到相关文章

最新更新