PHP在循环内随机地打印文本
问题描述:
我从对象格式的数据库中选择数据。我想循环它,但我也随机将文本包含在显示中。如何将该文本添加到对象中的随机位置?或者如何在循环内部随机打印一次?PHP在循环内随机地打印文本
// Object数据
$ OBJ =(对象)[
'0' => ['name' => 'Banana'], '1' => ['name' => 'Potato'], '2' => ['name' => 'Mango']
];
//除了文本将显示
$文字= '我的随机文本';
的foreach($ OBJ为$ 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;
}
希望这将有助于解决您的查询!
答
你有没有确定多少数组存储在你的对象的方法吗?
如果是这样,则生成一个介于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;
}
所以,你想要写一个PHP代码,会从数据库打印随机行? – 2016-04-28 04:20:22
对于缺乏信息问题,我很抱歉。我已经更新了这个问题。请再检查一次。 – lyhong