我需要一些帮助。我一直在努力解决这个问题,但我做不到,所以我想做的是 我正在尝试与对象数组blackListUser进行比较 与contactUsers。 如果有匹配项,我想返回新用户的白名单,而没有返回名单的用户,这是最后一个预期的新数组。
for($counter = 0; $counter < count($blackListUsers); $counter++) {
how i can check here
}
ContactUsers
Array
(
[0] => stdClass Object
(
[user_id] => 2
[full_name] => User B
[image] => 1582735876user-a.png
)
[1] => stdClass Object
(
[user_id] => 3
[full_name] => User C
[image] => 1582735876user-a.png
)
[2] => stdClass Object
(
[user_id] => 4
[full_name] => User D
[image] => 1582735876user-a.png
)
[3] => stdClass Object
(
[user_id] => 5
[full_name] => User E
[image] => 1582735876user-a.png
)
[4] => stdClass Object
(
[user_id] => 6
[full_name] => User F
[image] => 1582735876user-a.png
)
[5] => stdClass Object
(
[user_id] => 8
[full_name] => User G
[image] => 1582735876user-a.png
)
)
blackListUsers
Array
(
[0] => stdClass Object
(
[user_id] => 2
[full_name] => User B
[image] => 1582735876user-a.png
)
[1] => stdClass Object
(
[user_id] => 3
[full_name] => User C
[image] => 1582735876user-a.png
)
)
expected new array
Array
(
{
"user_id": "4",
"name": "User D",
"image": "1582735876user-a.png"
},
{
"user_id": "5",
"name": "User E",
"image": "1582735876user-a.png"
},
{
"user_id": "6",
"name": "User F",
"image": "1582735876user-a.png"
},
{
"user_id": "8",
"name": "User G",
"image": "1582735876user-a.png"
}
)
答案 0 :(得分:1)
launch.json
将array_filter与anonymous function一起使用;和in_array。
阅读<?php
$user1->user_id = 2;
$user1->full_name = 'User B';
$user1->image = '1582735876user-a.png';
$user2->user_id = 3;
$user2->full_name = 'User C';
$user2->image = '1582735876user-a.png';
$user3->user_id = 4;
$user3->full_name = 'User D';
$user3->image = '1582735876user-a.png';
$user4->user_id = 3;
$user4->full_name = 'User C';
$user4->image = '1582735876user-a.png';
$users = [$user1, $user2, $user3];
$blackListedUsers = [$user4];
$res = array_filter($users, function ($user) use ($blackListedUsers) {
return !in_array($user, $blackListedUsers);
});
var_dump($res);
文档,看看它是否符合您的需要,因为它正在比较两个对象,因此您可以使用一个自定义函数,该函数仅在两个对象的ID相等时才进行测试。
更新
或者更适合初学者的代码版本:
in_array