Поиск

Создание многомерных массивов

Многомерные массивы могут быть вам известны по другим языкам программи рования. Если нет, то это еще одна тема, которую вы наверняка захотите осво ить, как только овладеете основами программирования на языке РНР. Массивы настолько универсальны, что не стоит ограничивать значения эле ментов в них только строками и числами. Если в качестве значения в массиве снова задать массив, мы получим многомерный массив.
Например:

$Arrayl = array("apples", "bananas", "oranges");
$Array2 = array("steaks", "hamburgers", "pork chops");
$List = array("fruits"=>$Arrayl, "meats"=>$Array2,
*"other"=>"peanuts", "cash" => 3 0 . 0 0 ) ;

Многомерный массив $List состоит теперь из одной строки (peanuts), од ного числа с плавающей точкой (30.00) и двух массивов (fruits и meats). Обращение к элементам многомерного массива может быть более трудным, чем в простом массиве. Ключевым моментом здесь становится добавление ин дексов по мере необходимости. Поэтому в нашем примере строка bananas на ходится по такому адресу:
$List["fruits"] [1]. '

Сначала мы указываем на элемент (в данном случае массив $Arrayl) масси ва $List с помощью переменной [" fruits" ]. Затем представляем элемент мас сива исходя из его положения. Это второй элемент, следовательно, мы исполь зуем индекс [1].

Допустимо создать многомерный массив в одной инструкции с помощью набора вложенных вызовов функции array ( ) . Но я не рекомендовал бы делать этого, так как возможность синтаксической ошибки значительно увеличивается по мере того, как возрастает уровень вложенности инструкции. Если вас заинтересовали многомерные массивы и вы испытываете необходимость в их использовании, то сначала всегда задавайте отдельные массивы, а затем объединяйте их в один. Распечатать значение из многомерного массива достаточно сложно. Во всех вер сиях РНР ранее четвертой сделать это напрямую невозможно. В РНР 4.0 с помо щью фигурных скобок разрешается печатать из многомерных массивов в строке:

print ("The value I want to print is {$Array[indexl][index2]}.");.

Впрочем, вариант print ("The value Iwant to print is $Array[indexl][index2]."); будет работать не во всех версиях.