根据数组的值删除元素

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

//示例数组
$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 协议》,转载必须注明作者和本文链接
六月的风
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2

Laravel

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

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