我遍历了一个对象数组,想要根据它的'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
}
}
}
有什么建议吗。谢谢。
发布于 2010-02-21 10:56:59
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]);
}
}
}
发布于 2015-06-09 20:17:56
您还可以在foreach
值上使用引用:
foreach($array as $elementKey => &$element) {
// $element is the same than &$array[$elementKey]
if (isset($element['id']) and $element['id'] == 'searched_value') {
unset($element);
}
}
发布于 2010-02-21 10:58:43
看起来你的unset语法是无效的,缺乏重新索引可能会在未来带来麻烦。请参阅:the section on PHP arrays
正确的语法如上所示。还要记住array-values用于重新索引,这样您就永远不会索引之前删除的内容。
https://stackoverflow.com/questions/2304570
复制相似问题