PHP数组按值(而不是键)删除

44 浏览
0 Comments

PHP数组按值(而不是键)删除

我有一个PHP数组,如下所示:

$messages = [312, 401, 1599, 3, ...];

我想删除包含值$del_val(例如$del_val=401)的元素,但我不知道它的键。这可能有帮助:每个值只能出现一次

我正在寻找执行此任务的最简单的函数,请。

admin 更改状态以发布 2023年5月21日
0
0 Comments

把数组中的一个元素删除基本上只是将它与一个元素进行差集

array_diff( [312, 401, 15, 401, 3], [401] ) // removing 401 returns [312, 15, 3]

这种方法可以很好地推广,如果需要的话,可以同时删除多个元素。

免责声明:请注意,我的解决方案生成一个新副本的数组,而保持旧副本不变,与被接受的答案相反,它是突变的。选择你需要的那一个。

0
0 Comments

使用array_search()unset,尝试以下操作:

if (($key = array_search($del_val, $messages)) !== false) {
    unset($messages[$key]);
}

array_search()会返回它找到的元素的键,可以使用unset()从原始数组中删除该元素。但如果查找失败,它将返回FALSE,但在成功时它可以返回一个值为0的假值,这就是为什么要使用严格比较!==操作符的原因。

if()语句会检查array_search()是否返回一个值,如果是,则执行相应的操作。

0