根据数组的值删除元素

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

//示例数组
$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
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

Laravel

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

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