Страница 73 из 813 Массивы в PHP, как и во многих других языках программирования, можно смело назвать "рабочими лошадками''; в PHP имеется множество встроенных функций, специально предназначенных для работы с массивами. Далее рассматриваются некоторые из наиболее широко используемых функций. (Более серьезная работа с данными функциями описана в главах 3 и 4.) Многие из функций для работы с массивами аналогичны функциям, которые можно применять к базам данных. Часто возникают ситуации, когда требуется выяснить, сколько элементов имеется в массиве. Для подсчета количества элементов можно использовать функцию count() (при необходимости ее можно также использовать для подсчета элементов в любой переменной): $number_of_elements = count($my_array); Функция array_count_values() решает другую задачу — она возвращает (в виде массива) частоту появления значений в массиве, который передан ей в качестве аргумента. Имена элементов в массиве $returned_array— значения в массиве $argument_array, а значения элементов $returned_array— числа, показывающие, сколько раз данные значения встречаются в $argument_array. Работу функции проще понять, если рассмотреть следующий код: $argument_array = array("dog", "dog", "cat", "cat", "hamster"); $returned_array = array_count_values($argument_array); print_r($returned_array); В результате выполнения этого фрагмента выводится следующая информация: Array ( [dog] => 2 [cat] => 2 [hamster] => 1 ) Функция array_flip() оказывается полезной, когда требуется поменять местами значения и имена ключей. Например, когда имеется список имен людей в качестве имен элементов, а значением каждого элемента является SSN (Social Security number — номер социального страхования), и необходимо "перевернуть" массив так, чтобы доступ к имени человека можно было получить посредством его SSN-номера (так как SSN должен быть уникален, а имена могут дублироваться). Добиться этого можно с помощью следующего кода: $my_people_array = array("John" => "555-66-7777", John => "444-55-3333"); $my_ssn_array = array_flip($my_people_array); Затем массив $my_ssn_array можно использовать для поиска людей, даже если имя John повторяется дважды. Сортировка массивов с помощью функций sort() и asort() Часто возникает необходимость отсортировать элементы массива (например, требуется создать список имен в алфавитном порядке). Это можно сделать с помощью функции sort() . Для того чтобы отсортировать элементы массива и сохранить при этом связь значений и индексов, используется функция asort(). Функция sort() сортирует значения и последовательно присваивает им индексы, а функция asort() сохраняет связь индексов и значений элементов. Код может выглядеть так: $my_unsorted_array = array("Jim", "Bob", "Mary"); $my_sorted_array = sort($my_unsorted_array); $my_sorted_array_with_unchanged_indexes = asort($my_unsorted_array);
|