发布日期:2018-03-26
在PHP中通过值(VALUE)而不使用键(KEY)删除数组中的一个元素+ 查看更多
在PHP中通过值(VALUE)而不使用键(KEY)删除数组中的一个元素
+ 查看更多
发布日期:2017-04-02 15:15
分类:PHP
浏览次数:209
我有个PHP数组如下
$messages = [312, 401, 1599, 3, ...];
我想删除值为 $del_val的那个元素(举个例子,$del_val=401),但是我不知道它的键,另外这一条信息可能会有帮助:每个值只存在一个。
我想找一个最简单的方法完成这个任务,请帮帮我
回答
使用 array_search() 和 unset() 函数,像下面这样:
if(($key = array_search($del_val, $messages)) !== false) {
unset($messages[$key]);
}
array_search()方法可以找到并返回元素的键,然后就可以用unset()方法移除那个元素了。
当查找失败时它会返回false,但查找成功的时候会返回可能被误认为false的值(举个例子,这个键可能是0)
这就是为什么要用这个严格的比较符号 !== 。
这个if语句会检查array_search()是否返回一个非布尔值,只有返回非布尔值才会执行删除操作