2014-11-15 4 views
-1

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

Я хочу ограничить результаты цикла до 16. Имеет ли код ниже лучший метод?

Спасибо, Джеффри

foreach ($flickr_set['items'] as $id => $photos) { 
$ctr=0; 
     foreach ($photos as $photo) { 
if($ctr>=16) break; else $ctr++; /* limits results to 16 */ 
     echo '<a href="' . $photo['large'] . '" title="' . $photo['title'] . '" rel="flickr-set" ><img src="' . $photo['thumb'] . '" /></a>'; 
    } 
} 
+0

Как насчет добавления тега для какого языка? –

+0

Извините, хороший звонок, это только мой второй пост здесь, когда переполнение стека. – jeffreyd00

ответ

1

Ваше решение хорошо, если вы хотите получить более структурированную решение, которое может быть также более понятным, вы можете использовать array_slice:

foreach ($flickr_set['items'] as $id => $photos) { 
     foreach (array_slice($photos, 0, 16) as $photo) { 
     echo '<a href="' . $photo['large'] . '" title="' . $photo['title'] . '" rel="flickr-set" ><img src="' . $photo['thumb'] . '" /></a>'; 
    } 
} 
+0

Спасибо, это замечательно. – jeffreyd00

1

Ваш код штраф но ..

Я не проверял, если он выше или равен, я бы только проверил, если он равен примерно:

if($ctr == 16) 
+0

Является ли это только личным предпочтением или это более лучшая практика? – jeffreyd00

+0

@ jeffreyd00 Я бы сказал более личное предпочтение, так как вы nerver ожидаете, что он будет выше, чем 16! Так что я сравниваю только с равными 16 – Rizier123

+0

Еще раз спасибо. Оба решения работают и великолепны. Цените руководство. – jeffreyd00