[英]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;
}
結果可以是
香蕉
土豆
我的隨機文字
芒果
要么
我的隨機文字
香蕉
土豆
芒果
要么
香蕉
我的隨機文字
土豆
芒果
...
我會使用一個隨機數。 參見http://php.net/manual/en/function.rand.php
$rand = rand(0, count($yourArray));
然后在您的數組循環中,測試給定項目的鍵值是否與您的隨機數比較(如果匹配),並回顯您的文本。
只需像這樣從對象數據中找到一個隨機位置索引。
$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++)
使用一個好的ol'。 當$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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.