Ответ 1
$results = array_diff(array_map('serialize',$a2),array_map('serialize',$a1));
$results = array_map('unserialize',$results);
echo '<pre>';
print_r($results);
Как найти разницу между двумя массивами
// ARRAY 1
$a1 = array(
"a1" => 1,
"a3" => array(
"a31" => 31
),
"a4" => array(
"a41" => 41
),
"a5" => array(
"a51" => 51,
"a52" => 52
)
);
// ARRAY 2
$a2 = array(
"a1" => 1,
"a2" => 2,
"a3" => array(
"a31" => 31,
"a32" => array(
"a321" => 321,
"a322" => 322
)
),
"a4" => array(
"a41" => 42
),
"a5" => array(
"a51" => 51,
"a52" => 52
)
);
Функция array_diff возвращает == > Array ( )
Но в приведенных выше двух переменных массива существует большая разница.
пример:
Итак, я хочу сравнить два массива n-level (т.е. вложенный массив)
$results = array_diff(array_map('serialize',$a2),array_map('serialize',$a1));
$results = array_map('unserialize',$results);
echo '<pre>';
print_r($results);