-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', что aren; t в' arr1'. – John3136

ответ

0

Вы помечено вопрос как laravel и что речь идет о вставке в базу данных, поэтому также предполагается Eqloeunt.

Вы можете использовать следующую функцию: Красноречивый

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

что позволяет экономить баловаться с массивом напрямую.

Ссылка: https://laravel.com/docs/master/eloquent#inserts

Смежные вопросы