Конструкция FOREACH в php
Среда, 11 августа 2010 г.Рубрика: PHP программирование -> Массивы
Метки: foreach | цикл по массиву
Просмотров: 1113
Подписаться на комментарии по RSS
Эта команда используется в том случае, если у Вас имеется, скажем,
массив где у элементов вместо числового идентификатора строковой, давайте вспомним как пишется код скрипта, где идентификатор числовой, а массив содержит несколько значений, и попробуем вывести все значения массива через цикл for:
'Ваня ',
2 => 'очень ',
3 => 'богатый!'
);
for ( $i = 1; $i <= 3; $i++ ) { /* Выводим в цикле 3 значения массива
*/
echo $a[$i];
}
В этом примере мы сначала в массив занесли 3 значения, в которых был
не большой текст, после
вывели все значения трёх элементов массива, которые имели числовые
индексы, вот что должно получится
Ваня очень богатый!
Но если у нас оказалось что у элементов массива строковой индекс ( в
виде слов ), то при помощи простого цикла for вывести значения не
получится,
давайте сначала попробуем добавить в массив несколько значений, где
индекс будет строковой:
'ВАЗ',
'German' => 'BMW',
'Poland' => 'Skoda',
'France' => 'Peugeot'
);
В этом примере мы добавили в массив несколько значений, а именно, в
этом массиве есть элементы имеющие строковый индекс, который указывает
на страну, в которой была сделана машина, а именно, значение этого
элемента и есть название машины.
А теперь давайте попробуем вывести все значения массива при помощи
специального цикла foreach - в котором - сначала в скобках пишем имя
массива, в нашем случае $a, после слово as, которое озночает как, с
английского, после переменную в которую будут заноситься значения
элементов массива
'ВАЗ',
'German' => 'BMW',
'Poland' => 'Skoda',
'France' => 'Peugeot'
);
foreach ( $a as $car ) {
echo $car."\r\n";
}
?>
По исполнении этого скрипта вот что у нас получится:
ВАЗ
BMW
Skoda
Peugeot
А теперь давайте разберём что к чему:
Сначала пишется название цикла, которое очень похоже на for, только это -
foreach
После в скобках пишется имя массива, в котором находятся все наши
значения, после пишется слово as - что означает "как", или массив $a как
наша переменная, и после as пишется имя переменной в которую мы и будем
заносить каждое значение элементов массива
После пишутся исполняемые действия, в нашем случае вывод значения
переменной $car( у неё такое название потому что в массиве содержатся
названия машин ).
Как работает цикл:
Сначала перменной прописанной нами присваивается значение, начиная с
первого, элемента массива, а именно название машины, после в цикле мы
выводим саму переменную, с названием машины, цикл будет работать пока не
кочнатся элементы массива, и с каждым повтором переменной $car будут
присваиваться всё новые значения( названия машин ).
А если Вы захотите вывести и навзание индекса - страну, в которой
создаётся данная машина, то нужно в начале цикла после слова as писать
переменную $key( в которой будет находиться название индекса, а $key
потому что это будет ключ ), после значок => как присвоить в массиве,
только это будет обозначать что $car преднадлежит нашему ключу $key, и
выведет навзание идентификатора и его значение, а именно страну, где
создаётся машина и марку этой машины.
'ВАЗ',
'German' => 'BMW',
'Poland' => 'Skoda',
'France' => 'Peugeot'
);
foreach ( $a as $key=>$car ) { /* Начинаю цикл и присваиваю переменной $car значение элемента массива */
echo "$key \r\n $car \r\n"; /* Вывожу значение переменной, а именно название машины */
}
?>
По выполнению этого скрипта у нас сначала выведется страна, потом на
следующей строчке и с несколькими пробелами марка машины.


Об этом не знал удивили! Спасибо)