我需要一个函数来查找相同user_id 的'right'键的更改
在我的例子中,我有两个数组:
$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');
现在我必须接收:
$result = array(
array(
'user_id' => '367',
'right' => 'RW',
)
)
$result2 = array(
array(
'user_id' => '367',
'right' => 'RWD',
)
)
我试了很多,但没有得到正确的函数。
有人能帮我吗。
编辑:
我用试试
function myFunc($a, $b){
if($a['user_id'] == $b['user_id']){
return strcmp($a['right'], $b['right']);
}
return 0;
}
输出为空。更好的解释是用foreach:
function myFunc($a, $b){
$output = array();
foreach($a as $_a){
foreach($b as $_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;
}
你是这个意思吗?