从在PHP中从数组中选择多个值切换到单个值

时间:2012-11-07 18:34:25

标签: php

我目前有一段代码从数组中选择多个值,只是想知道如何将其切换为仅从数组中选取一个值。

到目前为止,我已尝试将array_rand($status, rand(2,3))更改为array_rand($status, rand(1,1)),但它给出了错误消息**为foreach()提供的无效参数**。我该如何解决?

$dateStart = new DateTime();
$dateStart->setDate(2012, 10, 01);
$dateEnd = new DateTime();
$dateEnd->setDate(2012, 12, 01);

$dates = array();
while ( $dateStart < $dateEnd ) {
   $rand = array_rand($status, rand(2,3));
   $text = '';
   foreach ( $rand as $key ) $text .= $status[$key] . '<br />';

   printf("<li><div id='activity_date'>%s</div>
           <div id='activity_box'>
           <div id='activity_text'>" . $text . ' request</div></div></li>',

   $dateStart->format("d/m/Y")
   );

   $dateStart->modify(sprintf("+%d day",mt_rand(1, 10)));
}

2 个答案:

答案 0 :(得分:1)

$rand = array_rand($status);

我觉得自己有点傻。

以这种方式更改您的代码:

$rand = array_rand($status);
$text = $status[$rand] . '<br />';

答案 1 :(得分:1)

如果你想保留你的foreach,你必须确保从array_rand获得一个数组。一种方式是这样的:

$rand[] = array_rand($status);
foreach($rand as $key) { ... }

如果你总是只想要一个随机数组成员,那么@Gianps有更好的方法。丢失foreach