foreach ограничение на вывод
Как через цикл foreach вывести не весь массив а например с 1 по 2 элемент?
Если например имеем такой массив. $a = array( //Объявлени массива "green" => "Зелёный", "yellow" => "жёлтый", "white" => "белый", "black" => "Чёрный", "blue" => "Синий", ); |
Да, можно вот так сделать.
$i = 0; foreach($a as $key =>$one){ $i++; if($i >3) break; printf("%s - %s ",$key,$one); echo "\n"; } Какие варианты лучше есть? |
есть как минимум два основных способа:
1)цикл foreach перед началом цикла создаем счетчик, и при каждом исполнении тела цикла, увеличиваем его. имеем возможность узнать какой по-счет элемент сейчас перебираем. 2)обычный цикл for используем функции each(), next(), или смежные с ними, и break при достижении конца массива стоит перечитать описание всех базовых функций для работы с массивами. их меньше полусотни, и стоит помнить хотя бы о половине из них постоянно |
Вы реализовали первый вариант(хотя и не совсем точно с индексами у вас)
Вы молодец и стараетесь. это не все делают. ради такого дела напишу код по второму, менее очевидному варианту: $arr=array(1,2,3,4,5); reset($arr); for($i = 0,$val=;$i<1;$i++) { $t = each($arr); echo $t[1].'<br>'; } PS ваш вариант предпочтительней. сам так делаю. вам только надо привыкнуть к правильной индексации. то есть считать надо не с единицы, а с нуля. |
удалено.
|
Цитата:
|
Цитата:
Цитата:
|
тьфу блин, я думал Gozar имеет ввиду запятую.
|
факир был пьян, и фокус не удался =)
|
Цитата:
|
Часовой пояс GMT +3, время: 09:09. |