我有两个数组:
第一
"data": [
{
"username": "ishaza_",
"bio": "All photos by me:$",
"website": "",
"full_name": "Shaza",
"id": "411073318"
},
{
"username": "taylovesrissa",
"bio": "",
"website": "",
"full_name": "Taylor Angell",
"id": "750547868"
},
{
"username": "a_sh997",
"bio": "",
"website": "",
"full_name": "Ahmed",
"id": "679088716"
}
]
第二:
"data": [
{
"username": "ishaza_",
"bio": "All photos by me:$",
"website": "",
"full_name": "Shaza",
"id": "411073318"
},
{
"username": "taylovesrissa",
"bio": "",
"website": "",
"full_name": "Taylor Angell",
"id": "750547868"
},
{
"username": "a_sh997",
"bio": "",
"website": "",
"full_name": "Ahmed",
"id": "6790887163"
}
]
我想打印那些第一个和第二个都不存在的数据。
我使用了一个foreach循环但它给出了异常结果,就像每个项目被多次打印一样。
我的代码是:
foreach ($UserFollows->data as $entry1) {
foreach ($UserFollower->data as $entry2) {
$e1=$entry1->id;
$e2=$entry2->id;
if($e1!=$e2) {
print''.$e1.'</br>';
}
}
}
这里$UserFollows
和$UserFollower
代表两个数组。这个数组来自Instagram API。实际上我想比较两个api的instagram一个是跟随和其他后续并想要打印那些数据哪个没有在api结果中列出。
但我无法理解为什么我的代码会使用foreach循环返回异常结果
答案 0 :(得分:5)
使用 array_uintersect 计算数组的交集,通过回调函数比较数据。
$result = array_uintersect($UserFollows->data, $UserFollower->data, function($a, $b) {
return strcmp($a->id, $b->id);
});
答案 1 :(得分:0)
您希望找到差异,但您的代码不会这样做(它每隔$entry1
打印n次,其中n $UserFollower->data
中的项目数减去{{1}中的项目数匹配给定项目。
尝试这样的事情:
$UserFollower->data