首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用array_rand选择顶层数组及其所有子数组

使用array_rand选择顶层数组及其所有子数组
EN

Stack Overflow用户
提问于 2011-03-31 03:18:55
回答 1查看 335关注 0票数 0

嗨,我有点困惑,我不知道该怎么做。任何帮助都将不胜感激。

我有以下代码。

代码语言:javascript
复制
$worms_level1 = $this->catch_the_worm_model->get_worms_by_level(1);
$captured_worms = array();

for ($i = 0; $i < $num_worms; $i++)
{
    $captured_worms[$i] = array_rand($worms_level1);
}

return $captured_worms;

$worms_level1多维数组采用以下格式:

代码语言:javascript
复制
Array ( [0] => Array ( [worm_id] => 1 
                       [worm_name] => Verm 
                       [worm_description] => The most common verm, not a huge threat but a great nuisance. 
                       [worm_level] => 1 
                       [worm_value] => 1 ) 

        [1] => Array ( [worm_id] => 2 
                       [worm_name] => Vermichav 
                       [worm_description] => Vermichav loves a scuffle. He's been known to spit in Wormcatcher's eyes and inflict pain by cigarette burns. 
                       [worm_level] => 1 [worm_value] => 1 )
     )

在那一刻,代码成功地选择了随机数组并将它们保存到新的数组中,例如

代码语言:javascript
复制
Array ( [0] => 1 [1] => 1 )

但我也希望将后代数组保存到新数组中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-31 03:48:21

这样如何:

代码语言:javascript
复制
$captured_worms=array();
$howmany=20;
do{
    $howmany-=count($captured_worms);//decreases $howmany by the number we already grabbed
    shuffle($multiarray); //reorder the multiarray randomly
    $captured_worms=array_slice($multiarray,0,$howmany);//get as many elements as you want
} while(count($captured_worms)<$howmany); //ensures at least $howmany
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5491126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档