你如何在foreach循环中移除一个数组元素?
我想用foreach
循环访问一个数组来检查值是否存在。 如果该值确实存在,我想删除包含它的元素。
我有以下代码:
foreach($display_related_tags as $tag_name) {
if($tag_name == $found_tag['name']) {
// Delete element
}
}
一旦找到值,我不知道如何删除元素。 我如何删除它?
我必须使用foreach
来解决这个问题。 有可能是foreach
替代品,欢迎您分享。
如果您还获得了密钥,则可以像这样删除该项目:
foreach ($display_related_tags as $key => $tag_name) {
if($tag_name == $found_tag['name']) {
unset($display_related_tags[$key]);
}
}
更好的解决方案是使用array_filter
函数:
$display_related_tags =
array_filter($display_related_tags, function($e) use($found_tag){
return $e != $found_tag['name'];
});
正如php文档所写:
由于foreach依赖于PHP 5中的内部数组指针,因此在循环中更改它可能会导致意外的行为。
foreach($display_related_tags as $key => $tag_name)
{
if($tag_name == $found_tag['name'])
unset($display_related_tags[$key];
}
链接地址: http://www.djcxy.com/p/5099.html
上一篇: How do you remove an array element in a foreach loop?
下一篇: writing up