Тема №7. Работа с массивами

Цель работы:Обучение использованию массивов в сценариях PHP.

Массив представляет собой набор переменных, объединенных одним именем. Каждое значение массива идентифицируется индексом, который указывается после имени переменной-массива в квадратных скобках. Комбинацию индекса и соответствующего ему значения называют элементом массива.

1<?

2 $i = 1024;

3 $a[1] = 'abc';

4 $a[2] = 100;

5 $a['test'] = $i - $a[2];

7 echo $a[1] . "<br>\n";

8 echo $a[2] . "<br>\n";

9 echo $a['test'] . "<br>\n";

10 ?>

В приведенном примере, в строке три объявляется элемент массива $a с индексом 1; элементу массива присваивается строковое значение 'abc'. Этой же строкой объявляется и массив $a, так как это первое упоминание переменной $a в контексте массива, массив создается автоматически. В строке 4 элементу массива с индексом 2 присваивается числовое значение 100.

В строке же 5 значение, равное разности $i и $a[2], присваивется элементу массива $a со строковым индексом 'test'.

 

Как видите, индекс массива может быть как числом, так и строкой.

 

В предыдущем примере массив создавался автоматически при описании первого элемента массива. Но массив можно задать и явно:

1 <?

2 $i = 1024;

3 $a = array( 1=>'abc', 2=>100, 'test'=>$i-100 );

4 print_r($a);

5 ?>

 

Созданный в последнем примере массив $a полностью аналогичен массиву из предыдущего примера. Каждый элемент массива здесь задается в виде индекс=>значение. При создании элемента 'test' пришлось указать значение 100 непосредственно, так как на этот раз мы создаем массив "одним махом", и значения его элементов на этапе создания неизвестны PHP.

 

В строке 4 для вывода значения массива мы воспользовались функцией print_r(), которая очень удобна для вывода содержимого массивов на экран - прежде всего, в целях отладки.

Строки в выводе функции print_r разделяются обычным переводом строки \n, но не тэгом <br>. Для удобства чтения, строку print_r(..) можно окружить операторами вывода тэгов <pre>...</pre>:

 

echo '<pre>';

print_r($a);

echo '</pre>';

 

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

1 <?

2 $operating_systems = array( 'Windows', 'Linux', 'FreeBSD', 'OS/2');

3 $operating_systems[] = 'MS-DOS';

5 echo "<pre>";

6 print_r($operating_systems);

7 echo "</pre>";

8 ?>

 

Ниже приведенное задание 1 показывает особенность использования функции print_r и тега <pre>…</pre> (рис. 3.83 -3.84).

 

Примечание. Далее в данной теме заголовок типа (рис. 3.80) приводить не будем.

Рис. 3.80. Заголовок в HTML коде.