簡體   English   中英

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; 

}

結果可以是

  • 香蕉

  • 土豆

  • 我的隨機文字

  • 芒果

要么

  • 我的隨機文字

  • 香蕉

  • 土豆

  • 芒果

要么

  • 香蕉

  • 我的隨機文字

  • 土豆

  • 芒果

...

我會使用一個隨機數。 參見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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM