2016-05-16 5 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

Это правда, я думаю. С 1 000 000 итераций на PHP 7.0.5 разница в производительности составляет около 0,056 секунды в пользу предложения 'if()'. – MonkeyZeus

Смежные вопросы