$invitedfrnds0 = Array
( [0] => Array
(
[fb_user_id] => 100000058716604
[accept_status] => 0
)
[1] => Array
(
[fb_user_id] => 100000063917115
[accept_status] => 0
)
[2] => Array
(
[fb_user_id] => 100000261361844
[accept_status] => 0
)
[3] => Array
(
[fb_user_id] => 100005502043347
[accept_status] => 0
)
)
$invitedfrnds2 = Array
(
[0] => Array
(
[fb_user_id] => 100005502043347
[accept_status] => 2
)
)
这里我有两个数组$invitedfrnds0
和$invitedfrnds2
,这两个数组中有一些匹配的fb_user_id
,如果发现任何匹配,我需要从第一个数组中删除匹配的记录。之后我需要合并这两个数组
结果数组将看起来像这样。
$resultarray = Array
( [0] => Array
(
[fb_user_id] => 100000058716604
[accept_status] => 0
)
[1] => Array
(
[fb_user_id] => 100000063917115
[accept_status] => 0
)
[2] => Array
(
[fb_user_id] => 100000261361844
[accept_status] => 0
)
[3] => Array
(
[fb_user_id] => 100005502043347
[accept_status] => 2
)
)
我已经搜索了很多,尝试了一些
$resultarray = array_diff($invitedfrnds0,$invitedfrnds2);
$resultarray = array_map('array_diff_assoc', $invitedfrnds0, $invitedfrnds2);
但是没有做对,请帮我解决这个问题,谢谢
答案 0 :(得分:0)
您必须使用array_merge_recursive()
,而不是array_diff()
:
array_merge_recursive($invitedfrnds2, $invitedfrnds0);
答案 1 :(得分:0)
使用array_udiff即可实现此目标。
$invitedfrnds0 = array(
array('fb_user_id' => 100000058716604, 'accept_status' => 0),
array('fb_user_id' => 100000063917115, 'accept_status' => 0),
array('fb_user_id' => 100000261361844, 'accept_status' => 0),
array('fb_user_id' => 100005502043347, 'accept_status' => 0),
);
$invitedfrnds2 = array(
array('fb_user_id' => 100005502043347, 'accept_status' => 2),
);
// remove all matched values.
$result = array_udiff($invitedfrnds0, $invitedfrnds2, function($a, $b)
{
return $a['fb_user_id'] - $b['fb_user_id'];
});
// add values from the second array.
$result = array_merge($result, $invitedfrnds2);
var_dump($result);