PHP 在循环中随机打印文本一次


PHP print text randomly once inside a loop

>我从数据库中选择了对象格式的数据。我想循环播放它,但我也会在显示屏上随机包含文本。如何将该文本添加到对象中的随机位置?或者如何在循环内随机打印一次?

对象数据

$obj = (对象) [

'0' => ['name' => 'Banana'],
'1' => ['name' => 'Potato'],
'2' => ['name' => 'Mango']

];

将显示添加文本

$text ="我的随机文本";

foreach($obj as $d) {

 echo $d->name; 

}

结果可以是

  • 香蕉

  • 土豆

  • 我的随机文本

  • 芒果

  • 我的随机文本

  • 香蕉

  • 土豆

  • 芒果

  • 香蕉

  • 我的随机文本

  • 土豆

  • 芒果

只需像这样从对象数据中找到随机位置索引即可。

$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;
}

希望这将有助于解决您的查询!

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

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

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

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

如果是这样,请生成一个介于 0 和 $numArraysInObject - 1 之间的随机数,并使用一个好的 ol' 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;
}

也许你正在寻找这个.

foreach($obj as $d) {
 $d->name = $d->name . " " . $text;  // This concates the text.
 echo $d->name; 

}