Good day. I broke my head already ... I compare 2 arrays

$a = Array ( 'login' => 'kerryTy', 'timezone' => '4.00', 'lang' => 'russian', 'gender' => '2', 'birthday' => '1990-01-01', 'cat_send' => '304', 'from' => 'Russian', 'interests' => 'котики)))', 'signature' => 'test me)', 'join' => '1' ); $b = Array ( 'login' => 'TheSuperMAn))', 'timezone' => '4.00', 'lang' => 'russian', 'gender' => '1', 'birthday' => '1989-03-14', 'cat_send' => '304', 'from' => 'Russian Федерация', 'interests' => 'Вообще нету', 'signature' => 'oooooololo', 'join' => '1' ); $resoult = array_diff($b, $a); 

and get the result

 Array ( [login] => TheSuperMAn)) [birthday] => 1989-03-14 [from] => Russian Федерация [interests] => Вообще нету [signature] => oooooololo ) 

what is wrong here? and the fact that the function has lost the parameter

 gender 

the result was supposed to be

 Array ( [login] => TheSuperMAn)) [gender] => 1 [birthday] => 1989-03-14 [from] => Russian Федерация [interests] => Вообще нету [signature] => oooooololo ) 

so why is this? It seems to me that both values ​​are defined as TRUE and therefore are not compared. Tell me how to solve the problem?

    1 answer 1

    I think you need to use the array_diff_assoc () function

     $resoult = array_diff_assoc($b, $a); // результат: Array ( [login] => TheSuperMAn)) [gender] => 1 [birthday] => 1989-03-14 [from] => Russian Федерация [interests] => Вообще нету [signature] => oooooololo )