получить разницу между двумя массивами в Stack Overflow

 $array1= array( array( 'StudentId' => 1 ),array( 'StudentId' => 2 ) ) ;
$array2= array (array ( 'StudentId' => 1 )) ;

Мне нужно получить разницу между $ array1 & $ array2 и выходные данные должны быть следующими.

Array ( [0] => Array ( [StudentId] => 2 ) )

1

Решение

Это то, что вы ищете?

$array1 = array( array( 'StudentId' => 1 ), array( 'StudentId' => 2 ) );
$array2 = array( array( 'StudentId' => 1 ));

var_dump(array_diff_key($array1, $array2));

Выход:

array(1) { [1]=> array(1) { ["StudentId"]=> int(2) } }

2

Другие решения

Я решил это следующим образом,

$array1 = array( array( 'StudentId' => 1 ), array( 'StudentId' => 2 ) );
$array2 = array( array( 'StudentId' => 1 ));
foreach($array1 as $a=>$val){
if(in_array($val,$array2)){
unset($array1[$a]);
}
}

var_dump(array_values($array1));
2

Взгляни на http://php.net/manual/en/function.array-diff.php

массив array_diff (массив $ array1, массив $ array2 [, массив $ …])

Сравнивает массив1 с одним или несколькими другими массивами и возвращает
значения в массиве1, которых нет ни в одном из других массивов.

1
По вопросам рекламы [email protected]