首页 >后端开发 >php教程 >如何按值而不是键从 PHP 数组中删除元素?

如何按值而不是键从 PHP 数组中删除元素?

Barbara Streisand
Barbara Streisand原创
2024-12-23 19:46:10365浏览

How Can I Remove an Element from a PHP Array by Value, Not Key?

按值(非键)从 PHP 数组中删除元素

在 PHP 中处理数组时,通常需要根据值删除元素他们的价值观而不是他们的钥匙。考虑这样一个数组:

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

由于这个数组中的值是唯一的,我们如何在不知道其键的情况下选择性地删除具有特定值的元素?

解决方案:使用 array_search() 和 unset()

PHP 为此提供了两个有用的函数: array_search() 和取消设置()。这些函数的组合允许我们搜索元素的键,然后将其从数组中删除。它的工作原理如下:

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

此代码使用 array_search() 查找值为 $del_val 的元素的键。如果未找到该键,则 array_search() 返回 FALSE。但是,我们使用严格的比较运算符 !== 来确保仅当 array_search() 显式返回 FALSE 时表达式才计算为 true,从而避免 false-y 值(例如,键 0)。

如果键是发现,unset()函数用于从$messages数组中删除该元素。需要注意的是,unset() 是通过 key 来工作的,这就是为什么我们需要首先从 array_search() 获取 key。

以上是如何按值而不是键从 PHP 数组中删除元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn