当前位置: 首页 > 面试题库 >

如何从foreach循环内的数组中删除对象?

金慈
2023-03-14
问题内容

我遍历对象数组,并希望基于其“ id”属性删除其中一个对象,但是我的代码无法正常工作。

foreach($array as $element) {
    foreach($element as $key => $value) {
        if($key == 'id' && $value == 'searched_value'){
            //delete this particular object from the $array
            unset($element);//this doesn't work
            unset($array,$element);//neither does this
        } 
    }
}

有什么建议么。谢谢。


问题答案:
foreach($array as $elementKey => $element) {
    foreach($element as $valueKey => $value) {
        if($valueKey == 'id' && $value == 'searched_value'){
            //delete this particular object from the $array
            unset($array[$elementKey]);
        } 
    }
}


 类似资料:
  • 问题内容: 我想遍历一个数组,以检查是否存在一个值。如果该值确实存在,我想删除包含它的元素。 我有以下代码: 找到值后,我不知道如何删除该元素。如何删除? 我必须使用这个问题。可能有替代方法,欢迎您共享它们。 问题答案: 如果您还获得了密钥,则可以这样删除该项目:

  • 问题内容: 我正在尝试使用for循环在数组内创建一个数组-这是我的代码: 不幸的是,这给了我一个 “解析错误:语法错误,意外的T_CONSTANT_ENCAPSED_STRING,预期为’)’” 对于该行: 对于出了什么问题,我有些茫然-非常感谢您的帮助。$ clients是在其他地方定义的,所以这不是问题。 问题答案: 那是无效的语法。您必须首先构建数组的“父”部分。然后使用foreach循环添

  • 问题内容: 给定一个n个对象数组,假设它是一个string数组,并且具有以下值: 如何删除/删除数组中所有等于“ a”的字符串/对象? 问题答案: [如果需要一些现成的代码,请滚动到我的“ Edit3”(剪切后)。其余的供后代使用。] 为了充实清洁工的想法: 编辑:我现在使用而不是:单例仅限于一个条目,而该方法允许你添加其他字符串以稍后过滤:。 Edit2:以上方法保留了相同的数组(因此数组的长度

  • 问题内容: 我想使用两个数组生成一个,一个包含国家/地区代码,另一个包含国家/地区名称。 这是一个例子: 这种方法对我不起作用。有什么建议么? 问题答案: 那是无效的。 您可能想要这样的东西… 另外,使代码成为数组的键会容易得多…

  • 我有一个简单的表单,它使用foreach($\u POST as$key)将数据插入数据库= 我使用if(isset($\u POST['isset'])){ 我正在尝试解决如何从循环中排除隐藏字段。。。? 我看了这篇文章,但不明白我会在哪里使用(strpos($key,'hdn_') == false)//继续 如何排除 任何指导将不胜感激......

  • 问题内容: 我想在完成后从中删除对象,但找不到解决方法。尝试像下面的示例代码中那样将其删除不会起作用。如何在此循环中访问当前对象的迭代器以将其删除? 问题答案: 您不能在增强的for循环内。您必须使用“长手”方法: 当然,并非所有的迭代器都 支持 删除,但是您可以使用。 另一种方法是建立一个额外的“要删除的像素”集合,然后在列表最后调用。