2016-06-23 6 views
1

У меня есть цикл for, который отлично работает с использованием переменных и отображает соответствующие соответствия в выводе xml. Я хочу показать только первое совпадение (пример _1.jpg) вместо того, чтобы зацикливаться и отобразить весь $pic_count.PHP для остановки цикла после значения 1

Я пытался удалить ++ и тоже изменить математику на <= $pic_count в != > и т.д. Как только показать значение одного $pic_start, а затем выйти для цикла?

for ($pic_start = 1; $pic_start <= $pic_count; $pic_start++) 
{ 
    echo '<photo isMain="1"><photoSmall><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoSmall><photoLarge><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoLarge></photo>'; 
} 
+1

'$ pic_start = 1; echo ... 'delete loop at – splash58

+0

Если вы хотите запустить его только один раз, зачем вообще заниматься циклом? –

ответ

2

Просто поместите break; в конце цикла. Так что ваш код будет выглядеть следующим образом,

for ($pic_start = 1; $pic_start <= $pic_count; $pic_start++) 
{ 
echo '<photo isMain="1"><photoSmall><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoSmall><photoLarge><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoLarge></photo>'; 
break; // will execute loop only once. 
} 

перерыв заканчивается выполнение тока для, Еогеаспа, в то время, делать-во время или переключателя структуры.

Мы используем перерыв команду, чтобы разорвать петлю на определенном состоянии, в вашем случае просто необходимо разорвать цикл после первого исполнения. Поэтому поставьте это в конце цикла.

+0

Хорошее объяснение, спасибо. –

1

Просто используйте перерыв в цикле:

$stop_value = 2; 
for ($pic_start = 1; $pic_start <= $pic_count; $pic_start++) 
{ 
    if ($pic_start == $stop_value) { 
     break; 
    } 
    echo '<photo isMain="1"><photoSmall><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoSmall><photoLarge><![CDATA[/feeds/' . $img . '/rets_images/' . $listing . '_' . $pic_start . '.jpg]]></photoLarge></photo>'; 
} 
1

Попробуйте это:

for ($pic_start = 1; $pic_start <= $pic_count; $pic_start++) 
{ 
    echo ...; 
    break; 
} 

Это будет разорвать петлю после первой итерации для. Но если это так, зачем вообще использовать цикл for?

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