Функции для работы с массивами Рассмотрим некоторые часто используемые функции для работы с массивами. Функция list() Предположим, у нас есть массив, состоящий из трех элементов: $names[0]="Александр"; Допустим, в какой-то момент нам нужно передать значения всех трех элементов массива, соответственно трем переменным: $alex, $nick, $yakov. Это можно сделать так: $alex = $names[0]; Если массив большой, то такой способ присвоения элементов массива переменным не очень удобен. Есть более рациональный подход - использование функции list(): list ($alex, $nick, $yakov) = $names; Если нам нужны только "Николай" и "Яков", то мы можем сделать так: list (, $nick, $yakov) = $names; Функция array() Функция Array() используется специально для создания массивов. При этом она позволяет создавать пустые массивы. Вот методы использования функции Array(): php Операции над массивамиСортировка массивов Начнем с самого простого — сортировки массивов. В PHP для этого существует очень много функций. С их помощью можно сортировать ассоциативные массивы и списки в порядке возрастания или убывания, а также в том порядке, в каком вам необходимо — посредством пользовательской функции сортировки. Сортировка массива по значениям c помощью функций asort() и arsort(): Функция asort() сортирует массив, указанный в ее параметре, так, чтобы его значения шли
в алфавитном (если это строки) или в возрастающем (для чисел) порядке. $A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); Функция arsort() выполняет то же самое, за одним исключением: она упорядочивает массив не по возрастанию, а по убыванию. Сортировка по ключам с помощью функций ksort() и krsort(): Функция ksort() практически идентична функции asort(), с тем различием, что сортировка осуществляется не по значениями, а по ключам (в порядке возрастания). $A=array("d"=>"Zero", "c"=>"Weapon", "b"=>"Alpha", "a"=>"Processor"); Функция для сортировки по ключам в обратном порядке называется krsort() и применяется точно в таком же контексте, что и ksort(). Сортировка по ключам при помощи функции uksort(): Довольно часто нам приходится сортировать что-то по более сложному критерию, чем просто по алфавиту. Например, пусть в $Files хранится список имен файлов и подкаталогов в текущем каталоге. Возможно, мы захотим вывести этот список не только в лексикографическом порядке, но также и чтобы все каталоги предшествовали файлам. В этом случае нам стоит воспользоваться функцией uksort(), написав предварительно функцию сравнения с двумя параметрами, как того требует uksort(). php Конечно, связи между ключами и значениями функцией uksort() сохраняются, т. е., опять же, некоторые пары просто "всплывают" наверх, а другие — "оседают". Сортировка по значениям при помощи функции uasort() Функция uasort() очень похожа на uksort(), с той разницей, что сменной (пользовательской) функции сортировки "подсовываются" не ключи, а очередные значения из массива. При этом также сохраняются связи в парах ключ=>значение. Переворачивание массива с помощью функции array_reverce() Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями, конечно, не теряются. Например, вместо того, чтобы ранжировать массив в обратном порядке при помощи arsort(), мы можем отсортировать его в прямом порядке, а затем перевернуть: $A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); Конечно, указанная последовательность работает дольше, чем один-единственный вызов arsort(). Сортировка списка при помощи функций sort() и rsort() Эти две функции предназначены в первую очередь для сортировки списков. Функция sort() сортирует список (разумеется, по значениям) в порядке возрастания, а rsort() — в порядке убывания. Пример для функции sort(): php Перемешивание списка с помощью функции shuffle() Функция shuffle() "перемешивает" список, переданный ей первым параметром, так, чтобы его значения распределялись случайным образом. Обратите внимание, что, во-первых, изменяется сам массив, а во вторых, ассоциативные массивы восприимаются как списки. Пример: $A=array(10,20,30,40,50); Приведенный фрагмент кода выводит числа 10, 20, 30, 40 и 50 в случайном порядке. Выполнив этот фрагмент несколько раз, вы можете обнаружить, что от
запуска к запуску очередность следования чисел не изменяется. Это
свойство обусловлено тем, что функция shuffle() использует стандартный генератор случайных чисел, который перед работой необходимо инициализировать при Операции с ключами и значениями массива array_flip(array $arr) Функция array_flip() "пробегает" по массиву и меняет местами его ключи и значения. Исходный массив $arr не изменяется, а результирующий массив просто возвращается. $A=array("a"=>"aaa", "b"=>"aaa", "c"=>"ccc"); array_keys(array $arr [,mixed $SearchVal]) Функция array_keys() возвращает список, содержащий все ключи массива $arr. Если задан необязательный параметр $SearchVal, то она вернет только те ключи, которым соответствуют значения $SearchVal. Фактически, эта функция с заданным вторым параметром является обратной по отношению к оператору [] — извлечению значения по его ключу. array_values(array $arr) Функция array_values() возвращает список всех значений в ассоциативном массиве $arr. Очевидно, такое действие бесполезно для списков, но иногда оправдано для хэшей. in_array(mixed $val, array $arr) Функция in_array() возвращает true, если элемент со значением $val присутствует в массиве $arr. array_count_values(list $List) Функция array_count_values() подсчитывает, сколько раз каждое значение встречается в списке $List, и возвращает ассоциативный массив с ключами — элементами списка и значениями — количеством повторов этих элементов. Иными словами, функция array_count_values() подсчитывает частоту появления значений в списке $List. Пример: $List=array(1, "hello", 1, "world", "hello"); Источник: http://www.srubil.ru | |
| |
Просмотров: 426 | |
Всего комментариев: 0 | |