PHP 4 на практике



         

Перебор элементов - часть 2


В результате выполнения приведенного фрагмента массив $a_spice будет содержать следующие пары «ключ/значение»:

  • 0 => 0;
  • 1 => "parsley";
  • key => 0;
  • value => "parsley".
  • После этого строку "parsley" можно вывести любой из следующих команд:

    print $a_spice[1]: print $a_spice["value"];

    Функция each() обычно используется в сочетании с list( ) в циклических конструкциях для перебора всех или некоторых элементов массива. При каждой итерации each( ) возвращает либо следующую пару «ключ/значение», либо логическую ложь при достижении последнего элемента массива. Вернемся к массиву $spices; чтобы вывести все элементы на экран, можно воспользоваться следующим сценарием:

    // Сбросить указатель текущей позиции

    reset($spices);

    // Перебрать пары "ключ/значение", ограничиваясь выводом значения

    while (list ($key, $val) = each ($spices) ) :

    print "$val <br>"

    endwhile;

    Ниже приведен более интересный пример использования each( ) в сочетании с другими функциями, описанными в этой главе. Листинг 5.1 показывает, как при помощи этих функций вывести отформатированную таблицу стран и языков.

    Листинг 5.1.

    Построение таблицы HTML по содержимому массива

    // Объявить ассоциативный массив стран и языков $languages = array ("Country" => "Language",

    "Spain" => "Spanish",

    "USA" => "English",

    "France" => "French",

    "Russia" => "Russian");

    // Начать новую таблицу

    print "<table border=l>";

    // Переместить указатель к позиции первого элемента

    reset ($languages);

    // Прочитать первый ключ и элемент

    $hdl = key ($languages);

    Shd2 = $languages[$hd1];

    // Вывести первый ключ и элемент в виде заголовков таблицы

    print "<tr><th>$hd1</th><th>$hd2</th></tr>";

    next($languages);

    // Выводить строки таблицы с ключами и элементами массива

    while (list ($ctry,$lang) = each ($languages)) :




    Содержание  Назад  Вперед