0

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

到目前为止,我已经尝试更改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)));
}
4

2 回答 2

1
$rand = array_rand($status);

我觉得自己有点笨。

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

$rand = array_rand($status);
$text = $status[$rand] . '<br />';
于 2012-11-07T18:37:10.733 回答
1

如果你想保留你的 foreach,你必须确保你从array_rand. 一种方法是这样的:

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

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

于 2012-11-07T18:39:15.233 回答