les différences entre deux tableaux associatifs
Cette fonction compare le tableau $old_a et le tableau $new_a. elle retourne un tableau à plusieurs dimensions contenant les clés, et leurs valeurs, ajoutés, supprimés, modifiés et identiques:
'ajout' => array(),
'suppression' => array(),
'changement' => array(),
'identique' => array()
//php
function my_diff_assoc($old_a, $new_a) {
$r = array(
'ajout' => array(),
'suppression' => array(),
'changement' => array(),
'identique' => array()
);
foreach ( $old_a as $k => $v ) {
// les clés qui existe dans les deux
if ( array_key_exists($k, $new_a) ) {
// la valeur a changé
if ( $v != $new_a[$k] ) $r['changement'][$k] = $v;
// sinon elle est identique
else $r['identique'][$k] = $v;
unset($new_a[$k]);
}
// sinon ça à été supprimé
else $r['suppression'][$k] = $v;
}
// et à la fin il nous reste les nouveautés
$r['ajout'][$k] = $new_a;
return $r;
}