PHP从另一个数组中删除数组项(如果存在) [英] PHP remove array items from another if exists

查看:1084
本文介绍了PHP从另一个数组中删除数组项(如果存在)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个对象数组:数组A和数组B.如何检查数组A中是否存在数组B中的对象,如果存在,则将其从数组A中删除.

I have 2 object arrays: Array A and Array B. how can I check if object from Array B exists in Array A. and if exists remove it from Array A.

示例:

Array A:
   [
       {"id": 1, "name": "item1"},
       {"id": 2, "name": "item2"},
       {"id": 3, "name": "item3"},
       {"id": 4, "name": "item4"}
   ]

Array B 
   [
       {"id": 1, "name": "item1"},
       {"id": 3, "name": "item3"}
   ]

删除数组A后应如下所示:

After removing Array A should look like:

   [
       {"id": 2, "name": "item2"},
       {"id": 4, "name": "item4"}
   ]

推荐答案

array_filter可能会有所帮助.

$a =  [
       ["id"=> 1, "name"=> "item1"],
       ["id"=> 2, "name"=> "item2"],
       ["id"=> 3, "name"=> "item3"],
       ["id"=> 4, "name"=> "item4"]
   ];


print_r(array_filter($a, function($e) { 
  return  !in_array($e, [["id"=> 1, "name"=> "item1"],["id"=> 3, "name"=> "item3"]]);
}));
/* =>
    Array

(
    [1] => Array
        (
            [id] => 2
            [name] => item2
        )

    [3] => Array
        (
            [id] => 4
            [name] => item4
        )

)  
 */

http://php.net/manual/en/function.array -filter.php

http://php.net/manual/ru/function.in -array.php

这篇关于PHP从另一个数组中删除数组项(如果存在)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆