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