php - array_udiff() filter with 2 keys -


i need function find changes in 'right' key same user_id

in example have 2 arrays:

$a = array(     array(         'user_id' => '367',         'right' => 'rw',     ),     array(         'user_id' => '48',         'right' => 'rwd',     ) ); $b = array(     array(         'user_id' => '57',         'right' => 'rwd',     ),     array(         'user_id' => '367',         'right' => 'rwd',     ) ); $result = array_udiff($a, $b, 'myfunc'); $result2 = array_udiff($b, $a, 'myfunc'); 

now must receive:

$result = array(     array(         'user_id' => '367',         'right' => 'rw',     ) ) $result2 =  array(     array(         'user_id' => '367',         'right' => 'rwd',     ) ) 

i try lot did not correct function.

can me please.

edit:

i try with:

function myfunc($a, $b){     if($a['user_id'] == $b['user_id']){         return strcmp($a['right'], $b['right']);     }     return 0; } 

the output empty. better explain foreach:

function myfunc($a, $b){  $output = array();  foreach($a $_a){   foreach($b $_b){    if($_a['user_id'] == $_b['user_id']){     if($_a['right'] != $_b['right']){      $output[] = $_a;      break;     }    }   }  }  return $output; } 

function myfunc($a, $b) {     if($a['right'] < $b['right'])         return -1;     else if($a['right'] > $b['right'])         return 1;      return 0; } 

do mean ?


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -