根据数组的值删除元素

有更好的办法,欢迎大家评论哈

//示例数组
$arr = [123,345,456,789];

//1. 循环,取得key,unset,这种最好理解
foreach($arr as $k => $v) {
    if($v == '123') {
        unset($arr[$k]);
    }
}

//2. array_flip,交换键值位置,删除后,再次反转一下
$arr = array_flip($arr);
unset($arr['123']);
$arr = array_flip($arr);
print_r($arr);

//3. array_search,搜索得到key
if($k = array_search(789, $arr)) {
    unset($arr[$k]);
}

//4. array_diff,差集, 可以删多个,推荐
array_diff($arr, [456]);

最后提醒:
需要去重,或者重置键的,得还可以用 array_values , array_merge , array_unique 处理,具体可以自己测试
本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

Laravel

2年前 评论
ysxpark 2年前
陈先生
//存在bug,如果你的value是string number,当你再次反转的时候会变成int
array_flip()
2年前 评论
Junwind (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!