HTML, Excel, Word, SEOОсновы PHP ⇒ Массивы

PHP для "чайников"

Инструменты
Выбираем IDE
Выбираем Web-сервер
Выбираем СУБД
Структура языка PHP
Первый шаг
Синтаксис
Типы данных
Переменные и константы
Операторы
Выражения
Управляющие структуры
Функции
Классы
Исключения
Ошибки
Массивы
Глобальные массивы
Cookies
Сессии
Загрузка файлов
Работа с файлами
Работа с файлами на диске
Работа с данными в файле
Пример управления файлами
Работа с базами данных
Подключение
Анализ результатов
Выполнение запросов
Отключение
Пример: отслеживание пользователей
Работа в сети
Отправка почты
Безопасность
HTTP-аутентификация
Защита логином и паролем
Автоматизация
Регулярные выражения в PHP
Интеграция
PHP и JavaScript



Массивы


Автор: Артемьев Сергей Игоревич
ICQ: 438856621
email: _spin_@bk.ru

Массивы очень широко применяются в PHP-скриптах.


Массив - это набор элементов, к каждому из которых можно обратиться по индексу или имени. Все массивы в PHP являются ассоциативными, т.е. остоят из пар "ключ"="значение".

<?php

	$arr = array();
	$arr['car'] = 'Чайка';
?>

Массив $arr содержит одну пару значений. Ключом в ней будет значение 'car', а значением - 'Чайка'.

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

<?php

	$arr = array();
	$arr['car'] = 'Чайка';
	$arr['age'] = 100;
	$arr[10] = 'Элемент с ключом 10 ';

?>

Иногда нет необходимости задавать ключи элементов. В этом случае можно воспользоваться тем, что PHP может создавать ключи автоматически при добавлении элементов в массив. Ключи всегда будут числовыми и начинаться с нуля. Например:

<?php
	// эти два объявления массива эквивалентны
	
	$arr = array('первый', 'второй', 'третий');

	// и

	$arr = array(0=>'первый', 1=>'второй', 2=>'третий');
	

?>

Сочетание "=>" используется для отделения ключа от значения в элементе при объявлении массива.

Обращение к отдельному элементу массива производится по его индексу или ключу:

<?php
	$arr = array('первый', 'второй', 'третий');
	$first = $arr[0];
?>

А с помощью конструкции foreach можно быстро перебрать все элементы массива:

<?php
	$arr = array('первый', 'второй', 'третий');
    foreach($arr as $key=>$value)
    	echo "Элемент массива номер $key равен '$value'";
?>

Для работы с архивами в PHP предусмотрен ряд функций, позволяющих выполнить набор стандартных операций, таких как сортировка, поиск или разворот массива. Рассмотрим наиболее используемые функции.

array_chunk() Служит для разделения массива на части заданного размера. Функция возвращает массив из фрагментов исходного массива.
<?php
	$arr = array('а', 'б', 'в', 'г', 'д');
	$arr_chunked = array_chunk($arr, 3);
    //  $arr_chunked[0] 
    		содержит 'а', 'б', 'в'
    //  $arr_chunked[1] 
    		содержит 'г', 'д'
?>
array_combine() Функция объединяет два массива так, что элементы первого становятся ключами, а элементы второрого - значениями результирующего ассоциативного массива.
<?php
	$keys = array(0, 1, 2);
	$vals = array('а', 'б', 'в');
	$res = array_combine($keys, $vals);
    //  $res содержит 
    		0=>'а', 1=>'б', 2=>'в'
?>
array_count_values() Подсчитывает количество уникальных значений в массиве и частоту их появления
<?php
	$arr = array('а', 'б', 'в', 
    			'а', 'в', 'а');
	$res = array_count_values($arr);
    // $res содержит 
    	'а' => 3, 'б' => 1, 'в' => 2
    
?>
array_diff() Функция выделяет разницу двух массивов, т.е. элементы, которые есть в первом массиве и нет во втором.
<?php
	$arr1 = array('а', 'а', 'в');
	$arr2 = array('а', 'б', 'в');
	$res = array_diff($arr1, $arr2);
    //  $res содержит  'б'
?>
array_fill() Заполняет массив заданным значением
<?php
	$arr = array();
	$res = array_fill(2, 3, 'xxx');
    //  $res содержит  
    		2=>'xxx'
        	3=>'xxx'
        	4=>'xxx'
?>
array_flip() Меняет местами ключи и значения ассоциативного массива
<?php
	$arr = array(0=>'а', 1=>'б', 2=>'в');
	$res = array_flip($arr);
    //  $res содержит  
    		'а'=>0, 'б'=>1, 'в'=>2
?>
array_intersect() Функция вычисляет пересечение двух массивов, т.е. выдаёт все элементы, которые есть одновременно в обоих массивах.
<?php
	$arr1 = array('а', 'а', 'в');
	$arr2 = array('а', 'б', 'в');
	$res = array_diff($arr1, $arr2);
    //  $res содержит  'а', 'в'
?>
array_key_exists() Функция проверяет, имеется ли в массиве ключ с таким именем.
<?php
	$arr = array(0=>'а', 1=>'б', 2=>'в');
	if(array_key_exists(1, $arr)
    	echo 'Ключ найден';
    else echo 'Ключ не найден';    
?>
array_keys() Возвращает массив ключей
<?php
	$arr = array(0=>'а', 1=>'б', 2=>'в');
	$res = array_keys($arr);
    // $res содержит 0, 1, 2
    	
?>
array_merge() Объединяет один или более массивов. Значения элементов с одинаковыми ключами заменяется элементами второго массива
<?php
	$arr1 = array(0=>'а', 1=>'а', 2=>'в');
	$arr2 = array(3=>'а', 0=>'б', 4=>'в');
	$res = array_merge($arr1, $arr2);
    //  $res содержит  
    		0=>'б', 1=>'а', 2=>'в',
            3=>'а', 4=>'в'
?>
array_rand() Возвращает один случайный элемент из массива
<?php
	$arr = array('а', 'б', 'в');
	$res = array_rand($arr, 1);
    //  $res[0] содержит один
    		случайный элемент из $arr
?>
array_reverse() Возвращает исходный массив, но в обратном поряде, т.е. прочитанный от конца к началу.
<?php
	$arr = array('а', 'б', 'в');
	$res = array_reverse($arr);
    //  $res содержит  'в', 'б', 'а'
?>
array_search() Функция производит поиск элемента массива, соответствующего заданным условиям. Возвращает имя соответствующего ключа.
<?php
	$arr = array(11=>'а', 22=>'б', 33=>'в');
    $key = array_search('б', $arr);
    //  $key равен 22
?>
array_shift() Сдвигает все элементы массива к началу, при этом первый элемент массива теряется.
<?php
	$arr = array('а', 'б', 'в');
    $res = array_shift($arr);
    //  $res содержит 'б', 'в'
?>
array_slice() Извлекает фрагмент массива
<?php
	$arr = array('а', 'б', 'в');
    $res = array_slice($arr, 1, 2);
    //  $res содержит 'б', 'в'
?>
array_sum() Функция возвращает сумму всех значений массива
<?php
	$arr = array(100, 200, 300);
    $sum = array_sum($arr);
    //  $sum равно 600
?>
array_unique() Удаляет повторяющиеся значения из массива
<?php
	$arr = array(100, 200, 200, 300);
    $res = array_unique($arr);
    //  $res содержит
    		100, 200, 300
?>
array_unshift() Функция обратная array_shift(), сдвигает все элементы к концу массива и добавляет элемент в начало.
<?php
	$arr = array('б', 'в');
    $res = array_unshift($arr, 'x', 'y');
    //  $res содержит 'x', 'y', 'б', 'в'
?>
array_values() Возвращает массив значений исходного массива
<?php
	$arr = array('x'=>'а', 
    		'y'=>'б', 'z'=>'в');
    $res = array_values($arr);
    //  $res содержит 'а', 'б', 'в'
?>
array() Функция создаёт пустой или предустановленный массив.
<?php
	$arr_empty = array();
	$arr_preset = array('x'=>'а', 
    		'y'=>'б', 'z'=>'в');

?>
count() Подсчитывает количество элементов в массиве
<?php
	
	$arr = array('а', 'б', 'в');
    echo count($arr);
    // выведет 3

?>
in_array() Проверяет, существует ли в массиве указанное значение
<?php
	
	$arr = array('а', 'б', 'в');
    if(in_array('a', $arr))
    	echo 'Значение есть в массиве';
    else echo 'Значения в массиве нет';

?>
list() Оператор позволяет присвоить массив списку переменных.
<?php
	
	$arr = array('Иван', 'Петрович', 'Семёнов');
    
    list($name, $otch, $fam) = $arr;
    
    echo 'Имя: ' . $name;
    echo 'Отчество: ' . $otch;
    echo 'Фамилия: ' . $fam;

?>
sort() Функция сортировки массива
<?php
	
	$arr = array('Семён', 'Петрович', 'Иванов');
    
    sort($arr);
    // $arr содержит 
    	'Иванов',
        'Петрович', 
        'Семён', 
?>

Как видите пользоваться массивами очень просто, а главное - чрезвычайно удобно. Ни один большой проект не обходится без применения массивов. Мы расмотрели только часть доступных функций, не вдаваясь в тонкости их применения для различных ситуаций. Более подробную информацию вы сможете почерпнуть из официального руководства на сайте www.php.net.



В начало страницы



В начало страницы