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

Php 从foreach循环中获取随机结果,然后对随机结果执行foreach,php,arrays,wordpress,foreach,Php,Arrays,Wordpress,Foreach,我尝试在一组用户上执行foreach循环,然后从每5个用户中随机选择1个用户,再次执行foreach循环,结果显示用户id,以下操作一直持续到第二个foreach出现错误时,请任何人就我的错误提出建议 提前谢谢 $eligable_users = get_users(array( 'meta_key' => 'eligable', 'meta_value' => '0' )); $user_chunks = array_chunk($eligable_users, 4

我尝试在一组用户上执行foreach循环,然后从每5个用户中随机选择1个用户,再次执行foreach循环,结果显示用户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>";
    }

} 
$eligable\u users=获取用户(数组)(
“meta_键”=>“可替换”,
“meta_值”=>“0”
));
$user\u chunks=array\u chunk($eligable\u users,4);
foreach($user\u chunk作为$individual\u user\u chunk){
$random\u result=array\u rand($individual\u user\u chunk,1);
foreach($random\u结果为$user){
echo$user->ID.“
”; } }
您的第二个循环实际上没有意义,因为您将返回一个结果。当您只有一个来自
array\u rand()
的结果时,它会返回一个键而不是数组

仅拾取一个条目时,
array\u rand()
返回随机条目的键。否则,将返回随机项的键数组

foreach($user\u chunk作为$individual\u user\u chunk){
$random\u result=array\u rand($individual\u user\u chunk,1);
echo$individual_user_chunk[$random_result]->ID.“
”; }
您的第二个循环实际上没有意义,因为您将返回一个结果。当您只有一个来自
array\u rand()
的结果时,它会返回一个键而不是数组

仅拾取一个条目时,
array\u rand()
返回随机条目的键。否则,将返回随机项的键数组

foreach($user\u chunk作为$individual\u user\u chunk){
$random\u result=array\u rand($individual\u user\u chunk,1);
echo$individual_user_chunk[$random_result]->ID.“
”; }
$chunks=array\u chunk($eligable\u用户,5);
foreach($chunk作为$chunk){
$r=数组随机数($chunk);
$user=$chunk[$r];
echo$user->ID.“
”; }
$chunks=array\u chunk($eligable\u用户,5);
foreach($chunk作为$chunk){
$r=数组随机数($chunk);
$user=$chunk[$r];
echo$user->ID.“
”; }

您遇到的错误是什么?错误指向哪一行?代码的目的是什么?要随机使用所有数组值吗?您能否提供实际
$eligable_用户
数组的示例,该数组给出了重现问题的错误?请参见帮助中心中的。错误是:警告:为foreach()提供的参数无效,代码应获取一个用户数组,将数组分成5个块,从每个5个块中获取1个随机结果,然后为每个随机结果执行另一个foreach(foreach($random_result as$user))然后回显用户IdSo基本上你只需要5个随机用户ID?我看不出在这里使用两个循环有什么意义。那么为什么要使用
array\u chunk(…,4)
?这将为您提供一个包含4个用户的区块,而不是5个。不,数组区块的第二个参数是
size
而不是偏移量。你的错误是什么?错误指向哪一行?代码的目的是什么?要随机使用所有数组值吗?您能否提供实际
$eligable_用户
数组的示例,该数组给出了重现问题的错误?请参见帮助中心中的。错误是:警告:为foreach()提供的参数无效,代码应获取一个用户数组,将数组分成5个块,从每个5个块中获取1个随机结果,然后为每个随机结果执行另一个foreach(foreach($random_result as$user))然后回显用户IdSo基本上你只需要5个随机用户ID?我看不出在这里使用两个循环有什么意义。那么为什么要使用
array\u chunk(…,4)
?这将为您提供一个包含4个用户的区块,而不是5个。不,数组区块的第二个参数是
size
而不是偏移量。上面的内容差不多,但问题是当数组被分成块时,它需要读取:数组1结果1结果2结果3结果4结果5数组2结果6结果7等等。。。。其中,正如上面的代码所示,例如随机化数组2是随机化“结果1”,当它只应随机化出“结果6,结果7”时,etcI完全不知道“数组1结果1”是什么意思。你能详细说明这与你的代码有什么关系吗?你的问题中没有这样明确的要求。希望上面的内容有意义,顺便感谢你的帮助。没有,因为代码没有做任何这样的事情。也许您已经修改了代码或数据的某些方面,导致了这样的结果,但我的答案肯定不是这样的。上面的内容几乎就是这样,但问题是当数组被分成块时,它需要读取:数组1结果1结果2结果3结果4结果5数组2结果6结果7等等。。。。其中,正如上面的代码所示,例如随机化数组2是随机化“结果1”,当它只应随机化出“结果6,结果7”时,etcI完全不知道“数组1结果1”是什么意思。你能详细说明这与你的代码有什么关系吗?你的问题中没有这样明确的要求。希望上面的内容有意义,顺便感谢你的帮助。没有,因为代码没有做任何这样的事情。也许您已经修改了代码或数据的某些方面,从而导致了这种情况,但我的答案肯定不是这样的。
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>";
}