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
Post a Comment