开发者社区> 问答> 正文

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

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

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

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

我正在寻找执行此任务的最简单功能。

展开
收起
保持可爱mmm 2020-01-13 17:49:04 387 0
1 条回答
写回答
取消 提交回答
  • 使用array_search()和unset,尝试以下操作:

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

    array_search()返回找到的元素的键,可使用将键从原始数组中删除该元素unset()。它会FALSE在失败时返回,但是在成功时会返回false -y值(0例如,您的密钥),这就是使用严格比较运算符的原因!==。

    该if()语句将检查是否array_search()返回了值,并且只会执行一个操作。

    问题来源于stack overflow

    2020-01-13 17:49:45
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载