Конструкция FOREACH в php

Среда, 11 августа 2010 г.
Рубрика: PHP программирование -> Массивы
Метки: |
Просмотров: 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";  /* Вывожу значение переменной, а именно название машины */
}
?>

По выполнению этого скрипта у нас сначала выведется страна, потом на

следующей строчке и с несколькими пробелами марка машины.

Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Комментариев: 1
  1. Об этом не знал удивили! Спасибо)

Оставьте свой комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)