我想遍历一个数组,foreach以检查是否存在一个值。如果该值确实存在,我想删除包含它的元素。我有以下代码:foreach($display_related_tags as $tag_name) { if($tag_name == $found_tag['name']) { // Delete element }}找到值后,我不知道如何删除该元素。如何删除?我必须使用foreach这个问题。可能有替代方法foreach,欢迎您共享它们。
3 回答
智慧大石
TA贡献1946条经验 获得超3个赞
如果您还获得了密钥,则可以这样删除该项目:
foreach ($display_related_tags as $key => $tag_name) {
if($tag_name == $found_tag['name']) {
unset($display_related_tags[$key]);
}
}
九州编程
TA贡献1785条经验 获得超4个赞
更好的解决方案是使用以下array_filter功能:
$display_related_tags =
array_filter($display_related_tags, function($e) use($found_tag){
return $e != $found_tag['name'];
});
如PHP 文档所述:
由于foreach依赖于PHP 5中的内部数组指针,因此在循环中对其进行更改可能会导致意外行为。
在PHP 7中,foreach不使用内部数组指针。
- 3 回答
- 0 关注
- 3576 浏览
添加回答
举报
0/150
提交
取消