Php İç İçe (Recursive) array_diff_assoc / array_diff_assoc_recursive

Php İç İçe (Recursive) array_diff_assoc / array_diff_assoc_recursive

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 ) )

Comments


Yorum yazın







Tarih: