按值(非键)从 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中文网其他相关文章!