PHP在循环内随机地打印文本

问题描述:

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

// Object数据

$ OBJ =(对象)[

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

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

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

];

//除了文本将显示

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

的foreach($ OBJ为$ d){

echo $d->name; 

}

结果可以

  • 香蕉

  • 马铃薯

  • 我随机文本

  • 芒果

或者

  • 我随机文本

  • 香蕉

  • 马铃薯

  • 芒果

或者

  • 香蕉

  • 我随机文本

  • 马铃薯

  • 芒果

...

+0

所以,你想要写一个PHP代码,会从数据库打印随机行? – 2016-04-28 04:20:22

+0

对于缺乏信息问题,我很抱歉。我已经更新了这个问题。请再检查一次。 – lyhong

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

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

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

你有没有确定多少数组存储在你的对象的方法吗?

如果是这样,则生成一个介于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; 
} 

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

$rand = rand(0, count($yourArray)); 
然后在你的阵列循环

,测试相比,你的随机数给定项目的核心价值,如果它匹配,回声文本。

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

foreach($obj as $d) { 

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

}