2017-01-24 103 views
-3

我有2个数组,如下所示。比较两个数组 - 返回不匹配的数组项目

$ ARR1 =

array:8 [▼ 
    0 => array:18 [▼ 

    "c_id" => 19 
    "datetime" => "2017-01-20 21:48:16" 
    "aparty" => "8801911255104" 
    "bparty" => "8801961185321" 
    "call_duration" => "0" 
    "usage_type" => "SMSMT" 
    "lac" => "532" 
    "cell" => "13174" 
    "imei" => "357328068823480" 
    "imsi" => "470037500180672" 
    "network_type" => "Undefined" 
    ] 
    1 => array:18 [▶] 
    2 => array:18 [▶] 
    3 => array:18 [▶] 
    4 => array:18 [▶] 
    5 => array:18 [▶] 
    6 => array:18 [▶] 
    7 => array:18 [▶] 
] 


$arr2= = [ 
      'c_id' => '1', 
      'datetime' =>'2017-01-20 21:48:16' , 
      'aparty' => '8801911255104', 
      'bparty' =>'8801911255104', 
      'call_duration' => '999', 
      'usage_type' =>'MC', 
      'lac' => '555', 
      'cell' => '99', 
      'imei' => '6y8887766', 
      'imsi' => '6y8887766', 
      'network_type' =>'Undefined' 
    ]; 

现在我想比较第一阵列的第二阵列。逻辑是,如果$arr2不是在$ ARR1存在,那么插入database.if存在,则没有插入

我无法理解,我试图用这个代码,但是不行

foreach($arr1 as $k=>$v){ 
    $dif = abs($arr1[$k] - $arr2[$k]); 
    if($dif) return false else return true; 
} 
+0

寻找array_diff函数? http://php.net/manual/en/function.array-diff.php – Kaylined

+0

你的代码根本不处理数组。它当然甚至不会尝试在'arr2'中找到不在'arr1'中的项目。 – John3136

回答

0

您已经标记了的问题作为laravel,这是关于插入数据库,所以也假设Eqloeunt。

您可以利用以下雄辩功能:

$model = App\YourModel::firstOrCreate($arr2); 

从而节省与阵列直接搞乱。

参考:https://laravel.com/docs/master/eloquent#inserts