从foreach循环获取随机结果,然后对随机结果执行foreach


Getting a random result from foreach loop then doing foreach on the random results

我试图在用户数组上做一个foreach循环,然后从每5个用户中随机选择1个用户,并再次使用结果显示那里的用户id,以下工作直到第二个foreach抛出错误,任何人都可以就我做错了什么提出建议。

提前感谢。

$eligable_users = get_users(array(
  'meta_key' => 'eligable',
  'meta_value' => '0'
));

$user_chunks = array_chunk($eligable_users, 4);
foreach($user_chunks as $individual_user_chunk) {
    $random_result = array_rand($individual_user_chunk ,1);
    foreach($random_result as $user) {
        echo $user->ID . "</br>";
    }
} 

第二个循环实际上没有意义,因为您将返回单个结果。当array_rand()只有一个结果时,它会返回一个键,而不是一个数组。

当只选择一个条目时,array_rand()返回随机条目的键。否则,返回随机条目的键数组。

来源:php.net/array-rand

foreach($user_chunks as $individual_user_chunk) {
    $random_result = array_rand($individual_user_chunk ,1);
    echo $individual_user_chunk[$random_result]->ID . "<br>";
} 
$chunks = array_chunk($eligable_users, 5);
foreach($chunks as $chunk) {
    $r = array_rand($chunk);
    $user = $chunk[$r];
    echo $user->ID . "</br>";
}