Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2011, 01:41
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

foreach ограничение на вывод
Как через цикл foreach вывести не весь массив а например с 1 по 2 элемент?
Если например имеем такой массив.

$a = array( //Объявлени массива
"green"  => "Зелёный",
"yellow" => "жёлтый",
"white"  => "белый",
"black"  => "Чёрный",
"blue"   => "Синий",
);
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2011, 01:50
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Да, можно вот так сделать.
$i = 0;
foreach($a as $key =>$one){
$i++;
if($i >3) break;
printf("%s - %s ",$key,$one);
echo "\n";
}


Какие варианты лучше есть?
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2011, 01:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

есть как минимум два основных способа:
1)цикл foreach
перед началом цикла создаем счетчик, и при каждом исполнении тела цикла, увеличиваем его.
имеем возможность узнать какой по-счет элемент сейчас перебираем.
2)обычный цикл for
используем
функции each(), next(), или смежные с ними, и break при достижении конца массива
стоит перечитать описание всех базовых функций для работы с массивами.
их меньше полусотни, и стоит помнить хотя бы о половине из них постоянно
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2011, 02:00
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Вы реализовали первый вариант(хотя и не совсем точно с индексами у вас)
Вы молодец и стараетесь. это не все делают.
ради такого дела напишу код по второму, менее очевидному варианту:
$arr=array(1,2,3,4,5);

reset($arr);
for($i = 0,$val=;$i<1;$i++) {
    $t = each($arr);
    echo $t[1].'<br>';
}


PS ваш вариант предпочтительней. сам так делаю.
вам только надо привыкнуть к правильной индексации. то есть считать надо не с единицы, а с нуля.
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2011, 19:44
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

удалено.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 02.02.2011 в 15:44.
Ответить с цитированием
  #6 (permalink)  
Старый 29.01.2011, 19:50
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Сообщение от Gozar Посмотреть сообщение
,$val= очепятка?
нет, инициализация переменных цикла, если их несколько то через запятую.
Ответить с цитированием
  #7 (permalink)  
Старый 29.01.2011, 20:07
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Vulkan
нет, инициализация переменных цикла, если их несколько то через запятую.
в этом случае:
Сообщение от Gozar
очепятка
Ответить с цитированием
  #8 (permalink)  
Старый 29.01.2011, 21:00
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

тьфу блин, я думал Gozar имеет ввиду запятую.
Ответить с цитированием
  #9 (permalink)  
Старый 29.01.2011, 22:59
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

факир был пьян, и фокус не удался =)
Ответить с цитированием
  #10 (permalink)  
Старый 30.01.2011, 01:19
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Gvozd
факир был пьян, и фокус не удался =)
а я подумал, это специально что бы не нашару решение было а человек подумал где собака порылась
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка PHP - foreach ВэйДлин Серверные языки и технологии 4 23.12.2010 00:04
Ограничение полей m00nster Общие вопросы Javascript 4 12.09.2010 11:14
Формирование array, передача и foreach Vulkan AJAX и COMET 4 15.07.2010 13:16
вывод картинки и vrml mister_maxim Events/DOM/Window 16 12.01.2010 17:40
Пошаговый вывод скрипта для IE всех версий. Zidky Элементы интерфейса 10 17.06.2009 18:27