2016-05-16 125 views
4

我使用此代碼生成行取決於數據庫中的值,我敢肯定有這樣做的更有效的方式,但我不確定如何!有沒有更好的方法來做到這一點在PHP

if ($empty == 1) { 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
} 
if ($empty == 2) { 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
} 
if ($empty == 3) { 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
} 
if ($empty == 4) { 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
} 
+1

用於該用途的開關。 –

+0

你能詳細解釋一下嗎? –

回答

14

您可以使用循環做到這一點:

$empty = 5; 
$str = ''; 
for(i=0;$i<$empty;$i++) { 
    $str .= "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
} 
echo $str; 
1

,我可以從你的問題看,你需要使用一個循環:

<?php 
    $empty = 4; 
    for($i = 0; $i < $empty; $i ++){ 
    echo "<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>"; 
    } 

該代碼會顯示許多空行,如你所需。並$empty是他們的數量。

13

您可以使用該str_repeat

if ($empty > 0) { 
    echo str_repeat("<li class='col-sm-4'><div class='horse-wrap empty'>Empty</div></li>", $empty); 
} 
+2

說實話,不需要'if(){}'。如果提供了零,則str_repeat()不輸出。 – MonkeyZeus

+2

@MonkeyZeus爲什麼在你不需要的時候執行函數?首先檢查的速度會更快 – Justinas

+0

我想這是真的。在PHP 7.0.5上進行1,000,000次迭代後,性能差異大約爲0.056秒,支持'if()'子句。 – MonkeyZeus

相關問題