1 回答

TA貢獻1831條經驗 獲得超10個贊
<?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);
將array_filter與匿名函數一起使用;和in_array。閱讀in_array
文檔以查看它是否符合您的需要,因為它正在比較兩個對象,您可以使用一個自定義函數,該函數僅在兩個對象的 ID 相等時進行測試。
更新
或者更適合初學者的代碼版本:
<?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];
$validUsers = [];
foreach ($users as $user) {
if (!isBlacklisted($user, $blackListedUsers)) {
$validUsers[] = $user;
}
}
var_dump($validUsers);
function isBlacklisted($user, $blackListedUsers) {
foreach ($blackListedUsers as $blackListedUser) {
if ($user->user_id == $blackListedUser->user_id) {
return true;
}
}
return false;
}
- 1 回答
- 0 關注
- 137 瀏覽
添加回答
舉報