Php ile recursive (iç içe) arraylerin farklarını karşılaştırmak için aşağıdaki fonksiyonu kullanabilirsiniz.
Fonksiyon
function array_diff_assoc_recursive($array1, $array2) {
$difference=array();
foreach($array1 as $key => $value) {
if( is_array($value) ) {
if( !isset($array2[$key]) || !is_array($array2[$key]) ) {
$difference[$key] = $value;
} else {
$new_diff = array_diff_assoc_recursive($value, $array2[$key]);
if( !empty($new_diff) )
$difference[$key] = $new_diff;
}
} else if( !array_key_exists($key,$array2) || $array2[$key] !== $value ) {
$difference[$key] = $value;
}
}
return $difference;
}
Kullanımı
$onaddded = array(
"username" => "onder",
"test" => "1",
"info"=>["id"=>21]
);
$insert = array(
"username" => "onder",
"test" => "1",
"info"=>["id"=>1],
"name" => "onder",
"on" => "eqe"
);
print_r(array_diff_assoc_recursive($onaddded, $insert));
Yanıt: Array ( [info] => Array ( [id] => 21 ) )