PHP数组按值删除(不是键)
我有一个PHP数组如下:
I have a PHP array as follows:
$messages = [312, 401, 1599, 3, ...];
我想删除包含值 $del_val
的元素(例如,$del_val=401
),但我不知道它的键.这可能会有所帮助:每个值只能出现一次.
I want to delete the element containing the value $del_val
(for example, $del_val=401
), but I don't know its key. This might help: each value can only be there once.
我正在寻找执行此任务的最简单函数.
I'm looking for the simplest function to perform this task, please.
推荐答案
使用 <代码>array_search() 和 unset
,尝试以下方法:
Using array_search()
and unset
, try the following:
if (($key = array_search($del_val, $messages)) !== false) {
unset($messages[$key]);
}
array_search()
返回它找到的元素的键,可用于使用 unset()
从原始数组中删除该元素.它会在失败时返回 FALSE
,但是它可以在成功时返回 false-y 值(例如,您的键可能是 0
),这就是为什么严格比较 !==
运算符.
array_search()
returns the key of the element it finds, which can be used to remove that element from the original array using unset()
. It will return FALSE
on failure, however it can return a false-y value on success (your key may be 0
for example), which is why the strict comparison !==
operator is used.
if()
语句将检查 array_search()
是否返回了值,如果返回则只执行操作.
The if()
statement will check whether array_search()
returned a value, and will only perform an action if it did.
相关文章