我有一个数组,如下所示
[0=>['classId'=>2,'Name'=>'John'],1=>['classId'=>3,'Name'=>'Doe'],2=>['classId'=>4,'Name'=>'Stayne']]
我需要从数组中删除classId为2或4的元素,预期的结果应该是
[0=>['classId'=>3,'Name'=>'Doe']]
我如何做到这一点而不使用一个循环。希望有人能帮助
您可以将array_filter
与in_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");
注意:我相信您仍然需要循环遍历一个多维数组。
问题内容: 我有ArrayList,我要从中删除具有特定值的元素… 例如 我知道我们可以遍历arraylist和.remove()方法来删除元素,但是我不知道如何在迭代时做到这一点。如何删除具有“ acbd”值的元素,即第二个元素? 问题答案: 在您的情况下,无需遍历列表,因为您知道要删除哪个对象。您有几种选择。首先,您可以按索引删除对象(因此,如果您知道,该对象是第二个列表元素): 然后,您可以
问题内容: 根据用户提交的内容,数组中的某些元素是空字符串。我需要删除那些元素。我有这个: 但这是行不通的。仍然有空元素。我也尝试过使用该功能,但是结果是一样的。 问题答案: 在处理字符串数组时,您可以简单地使用,它可以方便地为您处理所有这一切: 请记住, 如果未提供回调 ,则将删除所有等于(请参见转换为boolean)数组的条目。因此,如果您需要保留元素,即确切的string ,则需要一个自定义
问题内容: 我想删除原始数组(是)中的特定元素。我那个数组,并返回新的数组。但这不会影响此代码中的原始数组。我如何轻松地从原始数组中删除那些元素? 问题答案: 该方法不仅用于收集元素集,而且还用于收集元素集。如果您想通过评估条件来获得一项,那么您还有其他三种选择。,并因此只有当你想对多个项目的操作,你应该考虑使用过滤功能。就需要完成的工作而言,没有一个答案是完整的。他们使用过滤器功能隔离一个集合(
你可以使用delete关键字来删除数组元素。如: delete myObj.sites[1];
如上图片, 每个方块都有一个宽,高,X轴,Y轴; 有可能宽占多份, 高占多份; 但宽度最大就占3份, 高度不限; 每次删除一个格子, 下面的格子自动往左往上补齐; 给到数据假如是: 删除id为5的格子后,希望得到的是:
本文向大家介绍JavaScript通过元素索引号删除数组中对应元素的方法,包括了JavaScript通过元素索引号删除数组中对应元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript通过元素索引号删除数组中对应元素的方法。分享给大家供大家参考。具体分析如下: JavaScript通过元素的索引号删除数组中的元素,如果要删除第3个元素,则使用RemoveValByIn