PHP在循环中随机打印文本

时间:2016-04-28 04:01:26

标签: php loops foreach

我以对象格式从数据库中选择数据。我想循环它但我也在文本中随机包含文本。如何将该文本添加到对象中的随机位置?或者如何在循环内随机打印?

  

//对象数据

     

$ obj =(对象)[

'0' => ['name' => 'Banana'],

'1' => ['name' => 'Potato'],

'2' => ['name' => 'Mango']
     

];

     

//将显示附加文字

     

$ text ='我的随机文字';

     

foreach($ obj as $ d){

 echo $d->name; 
     

}

结果可以是

  • 香蕉

  • 马铃薯

  • 我的随机文字

  • 芒果

  • 我的随机文字

  • 香蕉

  • 马铃薯

  • 芒果

  • 香蕉

  • 我的随机文字

  • 马铃薯

  • 芒果

...

4 个答案:

答案 0 :(得分:1)

我会使用随机数。见http://php.net/manual/en/function.rand.php

$rand = rand(0, count($yourArray));

然后在您的数组循环中,测试给定项目的键值与您的随机数相比如果匹配,则回显您的文本。

答案 1 :(得分:1)

只需从您的对象数据中找到一个随机位置索引。

$randPos = rand(0, count($obj)-1);

将随机文本放在对象数据的随机索引之后,同时通过外观访问它。

//addition text will be displayed

$text = 'My random text';

foreach($obj as $k => $d) {
   echo $d->name; 
   if($k == $randPos) echo $text;
}

希望这有助于解决您的疑问!!

答案 2 :(得分:0)

您是否有办法确定对象中存储了多少个数组?

如果是这样,请生成介于0和$numArraysInObject - 1之间的随机数,并使用一个好的'for ($i = 0; $i < $numArraysInObject; $i++)。当$i$numArraysInObject匹配时,请打印随机文字。

$printTime = rand(0, $numArraysInObject);
for ($i = 0; $i < $numArraysInObject; $i++) {
    if ($i == $printTime)
        echo "My random text";
    echo $d -> name;
}

答案 3 :(得分:0)

可能你正在寻找这个......

foreach($obj as $d) {

 $d->name = $d->name . " " . $text;  // This concates the text.
 echo $d->name; 

}