В РНР массив является одним из типов переменных, который называется – array. Создать массив в РНР скрипте очень просто Пример:
$names[0]="vasya"; $names[1]="petya"; $names[2]="kolya";
Таким образом, мы создали массив с именем $names, который состоит из 3 элементов (vasya, petya, kolya). Интерпретатор РНР, догадается, что переменная $names имеет тип массив по квадратным скобкам. В этих скобках может быть указано как числовое, значение, так и строка – это значение называется ключом массива.
Массив, в котором ключами являются последовательность чисел, начиная от 0 (0,1,2…n) часто называют списком.
Любой массив в РНР является ассоциативным (т.е. каждому значению массива соответствует его ключ и наоборот). Список это тоже ассоциативный массив, только ключами в нём являются последовательный ряд целых чисел.
Что же произойдёт, если ничего не указать в квадратных скобках и оставить значение ключа пустым?
$names[]="vasya"; $names[]="petya"; $names[]="kolya";
В этом случае создаётся массив идентичный массиву в предыдущем примере. Дело в том, что когда РНР видит пустые скобки, то если переменная $names не задана, cоздаёт массив с нулевым элементом “vasya”. Каждый последующий раз интерпретатор просто добавляет элемент в конец массива. Создаётся список.
Для того, что бы обратиться к ячейке массива, нужно указать имя массива, и ключ элемента в квадратных скобках.
$names[1]; //Обращение к первому элементу массива-списка; $names['sydorov']; //Обращение к элементу массива $names, ключ которого равен sydorov;
Операции с массивами. Функции php для работы с массивами.
Функция list(). Результатом работы этой инструкции является создание массива, элементами которого являются параметры, указанные в круглых скобках через запятую.
$names=list(vasya,petya,kolya);
Если нужно добавить только первый и третий элементы, то
$names=list(vasya,,kolya);
Функция count(). Подсчитывает количество элементов массива.
Функция array(). В параметрах данной функции указываются элементы массива. Если list() создаёт исключительно списки, то при помощи array() можно создать массив типа: любой ключ – значение.
$names=array(kolya=>ivanov, vasya=>sydorov);
Обратите внимание, что для того, чтобы создать пару ключ-значение, нужно воспользоваться символами “=>”.
Слияние массивов.
Для объединения двух массивов существует несколько способов:
1.Пройтись по всем элементам одного массива циклом, и дописать его в конец другого массива.
for($i=1;$i=count($a);$i++) { $b[]=a[i]; }
2.Использовать функцию php – array_merge(). Параметрами данной функции будут массивы, которые нужно соединить. Будьте внимательны при использовании данной функции, при слиянии ассоциативных массивов. Так как если функция видит элементы с одинаковыми ключами, она перезаписывает эту ячейку элементом массива стоящего последним в списке её параметров. Пример:
$a=array('next'=>'k','e','r'); $b=array('r','e','next'=>'q','l','j'); $c=array_merge_recursive($a,$b);
В результате работы этого скрипта, элемент массива $c с ключом ‘next’, будет равен ‘q’. Чтобы этого избежать используйте функцию array_merge_recursive(). Она объединяет значения одинаковых ячеек. Настоятельно рекомендую использовать эту функцию, для объединения списков.
3.Массивы можно складывать знаком ‘+’.
$a=array('k','e','r'); $b=array('r','e','q','l','j'); $c=$a+$b;
В результате в массиве $c будут содержаться k,e,r,l,j,q. Как видите, данный способ, так же не учитывает дубликаты (даже в списках).
4. Перебор элементов ассоциативного массива. Специально для этой цели в php была включена конструкция foreach. Данный код:
foreach($array as $m=>$l) echo "m-$l";
выведет элементы, массива с именем array, парами ключ-значение.
Операции сортировки и прочих обработок массивов значительно упрощены в PHP путем вызова соответствующих функций. Массивы можно сортировать по возрастанию, убыванию, или посредством пользовательской функции сортировки. Рассмотрим, какими функциями обладает рнр для сортировки массивов.
asort() – сортирует массив по его значениям. Массив упорядочивается по возрастанию. Обратите внимание, что при этой сортировке пары ключ-значение сохраняются.
arsort() - то же самое, только массив сортируется по убыванию.
sort()/rsort() – хорошо подходит для сортировки списков (возрастание/убывание). При сортировке ассоциативных массивов их ключи попросту исчезают (т.е. эта функция превращает ассоциативный массив в список).
shuffle()- перемешивает список в случайном порядке.
array_reverce() - переворачивает массив. Т.е. возвращает массив, элементы которого следуют в обратном порядке относительно исходного.
usort/uksort- сортируют массив по правилам определённым пользователем.
Список функций для работы с массивами в PHP
- array_change_key_case – Возвращает массив, символьные ключи которого преобразованы в верхний или нижний регистр символов
- array_chunk – Разбить массив на части
- array_combine – Создать новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
- array_count_values – Подсчитать количество всех значений массива
- array_diff_assoc – Вычислить расхождение в массивах с дополнительной проверкой индекса
- array_diff_key – Вычислить расхождение в массивах, сравнивая ключи
- array_diff_uassoc – Вычислить расхождение в массивах с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
- array_diff_ukey – Вычислить расхождение в массивах, используя функцию обратного вызова для сравнения ключей
- array_diff – Вычислить расхождение в массивах
- array_fill – Заполнить массив определенным значением
- array_filter – Применяет фильтр к массиву, используя функцию обратного вызова
- array_flip – Поменять местами значения массива
- array_intersect_assoc – Вычислить схождение массивов с дополнительной проверкой индекса
- array_intersect_key – Вычислить пересечение массивов, сравнивая ключи
- array_intersect_uassoc – Вычислить пересечение массивов с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
- array_intersect_ukey – Вычислить пересечение массивов, используя функцию обратного вызова для сравнения ключей
- array_intersect – Вычислить схождение массивов
- array_key_exists – Проверить, присутствует ли в массиве указанный ключ или индекс
- array_keys – Выбрать все ключи массива
- array_map – Применить функцию обратного вызова ко всем элементам указанных массивов
- array_merge_recursive – Рекурсивно слить два или большее количество массивов
- array_merge – Слить два или большее количество массивов
- array_multisort – Сортировать несколько массивов или многомерные массивы
- array_pad – Увеличить размер массива до заданной величины
- array_pop – Извлечь последний элемент массива
- array_product – Вычислить произведение значений массива
- array_push – Добавить один или несколько элеметов в конец массива
- array_rand – Выбрать одно или несколько случайных значений из массива
- array_reduce – Итеративно уменьшить массив к единственному значению, используя функцию обратного вызова
- array_reverse – Возвращает массив с элементами в обратном порядке
- array_search – Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
- array_shift – Извлечь первый элемент массива
- array_slice – Выбрать срез массива
- array_splice – Удалить последовательность элементов массива и заменить её другой последовательностью
- array_sum – Вычислить сумму значений массива
- array_udiff_assoc – Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
- array_udiff_uassoc – Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов функцию обратного вызова
- array_udiff – Вычислить расхождение массивов, используя для сравнения функцию обратного вызова
- array_uintersect_assoc – Вычислить пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
- array_uintersect_uassoc – Вычислить пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений функцию обратного вызова
- array_uintersect – Вычислить пересечение массивов, используя для сравнения значений функцию обратного вызова
- array_unique – Убрать повторяющиеся значения из массива
- array_unshift – Добавить один или несколько элементов в начало массива
- array_values – Выбрать все значения массива
- array_walk_recursive – Рекурсивно применить пользовательскую функцию к каждому элементу массива
- array_walk – Применить пользовательскую функцию к каждому члену массива
- array – Создать массив
- arsort – Отсортировать массив в обратном порядке, сохраняя ключи
- asort – Отсортировать массив, сохраняя ключи
- compact – Создать массив, содержащий названия переменных и их значения
- count – Посчитать количество элементов массива или количество свойств объекта
- current – Возвратить текущий элемент массива
- each – Возвратить текущую пару ключ/значение из массива и сместить его указатель
- end – Установить внутренний указатель массива на его последний элемент
- extract – Импортировать переменные из массива в текущую символьную таблицу.
- in_array – Проверить, присутствует ли в массиве значение
- key – Выбрать ключ из ассоциативного массива
- krsort – Отсортировать массив по ключам в обратном порядке
- ksort – Отсортировать массив по ключам
- list – Присвоить переменным из списка значения подобно массиву
- natcasesort – Отсортировать массив, используя алгоритм “natural order” не принимая во внимание регистр символов
- natsort – Отсортировать массив, используя алгоритм “natural order”
- next – Передвинуть внутренний указатель массива на одну позицию вперёд
- pos – Alias of current()
- prev – Передвинуть внутренний указатель массива на одну позицию назад
- range – Создать массив, содержащий диапазон элементов
- reset – Установить внутренний указатель массива на его первый элемент
- rsort – Отсортировать массив в обратном порядке
- shuffle – Перемешать массив
- sizeof – Alias of count()
- sort – Отсортировать массив
- uasort – Отсортировать массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
- uksort – Отсортировать массив по ключам, используя пользовательскую функцию для сравнения ключей
- usort – Отсортировать массив по значениям используя пользовательскую функцию для сравнения элементов
Немає коментарів:
Дописати коментар