質問は次のように絞り込まれました。
と の 2 つの配列がuser_in_need
ありactive_users
ます。 user_in_need
のサブセットですactive_users
。
Array ( [1] [2] [3] [4] [5] [6] [7] [8] [9] ) // active_users
Array ( [3] [7] [9] ) // user_in_need
配列user_in_need
から各パートナーにランダムに割り当てる必要があります。active_users
1 つの注意点として、ユーザー自身をパートナーとして割り当てることはできません。
これは私が得ることができた限りです[うまくいきません]:
$partners = array();
foreach ($user_in_need as $value) {
$key = array_search($value, $active_users);
unset($active_users[$key]);
shuffle($active_users);
$newpartner = end($active_users);
$partners[$value] = $newpartner;
$user = $value;
$query = "UPDATE users SET target=:partner WHERE uid=:uid";
$query_params = array(':partner' => $newpartner, ':uid' => $user );
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}