根据数组的值删除元素

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

//示例数组
$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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

Laravel

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
躺平大叔 @ 躺平社区
文章
142
粉丝
17
喜欢
107
收藏
62
排名:258
访问:3.7 万
私信
所有博文
社区赞助商