Скачать 82.84 Kb.
|
PHP –функции для работы с массивами.Стыдно признаться, но я лишь недавно обнаружила наличие некоторых замечательных функций PHP, предназначенных для работы с массивами. Дабы исправить ситуацию, решено выписать такие функции в шпаргалку – может они применяются и не так часто, но предупрежден – значит вооружен, ни к чему изобретать, когда он уже стоит у подъезда. Итак, для начала пройдемся по наиболее востребованным функциям. count() Функция count() предназначена для подсчета количества элементов массива. К слову сказать, применить эту функцию можно к любой переменной, если это не будет массив, count просто вернет 1, и, конечно же, если передать ей null – вернется 0. Для подсчета элементов многомерного массива необходимо указать дополнительный параметр COUNT_RECURSIVE. [sourcecode language=”PHP” gutter=”true”] $test_arr = array("fruits" => array( "2"=>"apple", "3"=>"orange"), "10"=>"carrot"); echo count($test_arr) . " "; // результат 2 echo count($test_arr, COUNT_RECURSIVE); // результат 4 [/sourcecode] Функция array_sum() Функция array_sum() предназначена для вычисления суммы элементов массива. Синтаксис функции array_sum(массив). [sourcecode language=”PHP” gutter=”true”] $test_arr =array(12, 3, 15, 8, 1, 1.5); print_r(array_sum($test_arr)); //Результат: 40.5 [/sourcecode] PHP-функции поиска в массивеin_array() Функция in_array() применяется для поиска в массиве определенного значения. Вызов ее такой: in_array("что ищем", "где ищем", ["ограничение на тип"]); Здесь ограничение на тип – опциональный параметр. Если он задан как true, то поиск элемента будет осуществляться не только по значению, но и по типу. Важно: если ищется строка, то поиск чувствителен к регистру! [sourcecode language=”PHP” gutter=”true”] $test_arr = array("orange","apple","PEAR","pineapple"); if (in_array("PEAR",$test_arr, true)) echo "Есть груша! "; // выведет сообщение "Есть груша!" if (in_array("Pear",$test_arr)) echo "Есть груша! "; // не будет выведено ничего - // в массиве есть PEAR а не Pear [/sourcecode] Искать можно не только отдельные значения, но и массивы – такая возможность была добавлена в PHP с версии 4.2.0. [sourcecode language=”PHP” gutter=”true”] $test_arr = array("apple","orange",array("pineapple","pear"),"plum"); if (in_array(array("pineapple","pear"),$test_arr)) echo "Есть ананас и груша! "; [/sourcecode] array_search() Функция array_search() выполняет схожие с предыдущей функцией действия, но возвращает уже значение ключа в случае, если нужный элемент найден, и false – если нет. Синтаксис у обеих функций одинаков: array_search("что ищем", "где ищем", ["ограничение на тип"]); Так же как и в функции in_array() в array_search() при поиске с ограничением на тип сравниваются и типы значений. Поиск чувствителен к регистру. [sourcecode language=”PHP” gutter=”true”] $test_arr = array("", "apple","orange",array("pineapple","pear"),"plum"); if (!array_search("apple",$test_arr)) echo "Яблока нет! "; else { $k = array_search("apple",$test_arr); echo "Яблоко указано $k-м!"; //будет выведено: «Яблоко указано 1-м!» } [/sourcecode] До PHP версии 4.2.0 при отсутствии в массиве искомого элемента функция возвращала ошибку или NULL. При наличии в массиве нескольких элементов, соответствующих поиску, функция array_search() вернет значение ключа только первого найденного элемента. А если нужно найти все такие элементы? Тут на помощь приходит функция array_keys(). Функция array_keys() Функция array_keys() применяется не так часто, как предыдущие. Замечательна она тем, что выбирает все ключи массива. С помощью дополнительного аргумента можно получить список ключей с интересующим значением. Вызов этой функции таков: array_keys ("массив", ["значение для поиска"]) Функция array_keys() возвращает массив с числовыми индексами, где в качестве значений записаны найденные ключи. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("pear","apple","pineapple","plum", "pear","orange"); $pear_keys = array_keys($test_arr,"pear"); echo "Груша записана ". count($pear_keys) ." раза: "; foreach ($pear_keys as $item){ echo "под номером $item "; } //будет выведено: //"Груша записана 2 раза: //под номером 0 //под номером 4" [/sourcecode] Результат работы функции так же регистрозависим, поиск элемента PEAR не даст результата, вернется пустой массив. Функция array_unique() Массивы могут содержать неуникальные значения – что-то может и повториться. Избавиться от дублирующих элементов поможет функция array_unique(). В качестве параметра в функцию передается обрабатываемый массив, возвращается массив с уникальными значениями. Элементы этого массива преобразуются в строки и сортируются. Запоминается первый ключ для каждого повторяющегося значения, остальные игнорируются. Попробуем избавиться от повторяющихся языков в списке изученных. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("pineapple", "pear","apple", "pear", "pineapple","plum", "pear", "orange"); print_r(array_unique($test_arr)); // получим следующее: // Array ( [0] => pineapple [1] => pear [2] => apple [5] => plum [7] => orange ) [/sourcecode] PHP-функции сортировки массиваФункция sort() Синтаксис функции sort(): sort (массив [, флаги]) Функция упорядочивает значения массива по возрастанию, при этом все существовавшие ключи заменяются числовыми индексами. Возвращает функция либо true, либо false. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange"); print_r($test_arr); //Начальный массив: //Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange ) sort($test_arr); print_r($test_arr); //Результат //Array ( [0] => apple [1] => orange [2] => pear [3] => pineapple [4] => plum ) [/sourcecode] Функция принимает дополнительные параметры: SORT_REGULAR – сравнивать элементы массива обычным образом; SORT_NUMERIC – сравнивать элементы массива как числа; SORT_STRING – сравнивать элементы массива как строки. Функции asort(), rsort(), arsort() Синтаксис этих функций такой же, как у функции sort(), они так же принимают дополнительный параметры. Фунция asort() сохраняет индексы элементов при сортировке, функция rsort() упорядочивает элементы в обратном порядке, а arsort() отсортирует массив в обратном порядке с сохранением ключей. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange"); print_r($test_arr); //Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange ) asort($test_arr); print_r($test_arr); //Array ( [bc] => apple [df] => orange [ac] => pear [ab] => pineapple [cd] => plum ) arsort($test_arr); print_r($test_arr); //Array ( [cd] => plum [ab] => pineapple [ac] => pear [df] => orange [bc] => apple ) rsort($test_arr); print_r($test_arr); //Array ( [0] => plum [1] => pineapple [2] => pear [3] => orange [4] => apple ) [/sourcecode] Функции ksort() и krsort() Функции ksort() и krsort() упорядочивают элементы массива по значениям ключей в прямом и обратном порядке соответственно. Синтаксис функций аналогичен функции sort(). [sourcecode language=”PHP” gutter=”true”] $test_arr =array("ab"=>"pineapple", "ac"=>"pear","bc"=>"apple", "cd"=>"plum", "df"=>"orange"); print_r($test_arr); //Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange ) ksort($test_arr); print_r($test_arr); //Array ( [ab] => pineapple [ac] => pear [bc] => apple [cd] => plum [df] => orange ) krsort($test_arr); print_r($test_arr); //Array ( [df] => orange [cd] => plum [bc] => apple [ac] => pear [ab] => pineapple ) [/sourcecode] Функции usort() или uksort() Функции usort() или uksort() предназначены для сортировки массива с помощью пользовательской функции. Функция usort() упорядочивает значения элементов массива, а uksort() – значения ключей. Синтаксис функций: usort (массив , сортирующая функция) uksort (массив , сортирующая функция) К пользовательской функции здесь применяются определенные требования: сортирующая функция должна иметь два аргумента (в них интерпретатор будет передавать пары значений элементов или ключей) и сортирующая функция должна возвращать:
Для сортировки без изменения значению ключей у функции usort() существует аналог – функция uasort(). [sourcecode language=”PHP” gutter=”true”] // массив выглядит таким образом: $test_arr = array("Audi R8" => array ("Audi", 2006), "Renault Logan" => array("Renault",2007), "Opel Vectra" => array ("Opel",1999)); //Сортируем массива с помощью пользовательской функции compare() uasort($test_arr,"compare"); foreach ($test_arr as $key => $auto) { echo "$auto[0]: \"$key\" "; } //пользовательская функция сортировки по дате появления модели авто function compare($a,$b) { if ($a[1] < $b[1]) return -1; elseif ($a[1]==$b[1]) return 0; else return 1; } //Результат: //Opel: "Opel Vectra" //Audi: "Audi R8" //Renault: "Renault Logan" [/sourcecode] Применение произвольной функции ко всем элементам массиваФункция array_walk() Функция array_walk(массив, функция [, данные]) предназначена для применения любой пользовательской функцию ко всем элементам массива массив, возвращает true или false в зависимости от результата выполнения. Пользовательская функция здесь также имеет два аргумента, Пользовательская функция, как правило, имеет два аргумента, в которые поочередно передаются значение и ключ элементов массива. Может быть указан и третий аргумент – его смысл пользователь определяет самостоятельно. Если необходимо обработать действительные значения массива, а не копии, аргументы в функцию следует передавать по ссылке, но при этом нельзя производить действия, изменяющие сам массив (добавлять-удалять элементы) – в этом случае результат работы функции array_walk() окажется неопределенным. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("Ann"=>"pineapples", "Ben"=>"pears","Peter"=>"apples", "Fill"=>"plums", "Jill"=>"oranges"); function my_print($val,$key,$data) { echo "$data \"$key\" likes $val "; } array_walk($test_arr,"my_print","Predicate: "); //Результат: redicate: "Ann" likes pineapples Predicate: "Ben" likes pears Predicate: "Peter" likes apples Predicate: "Fill" likes plums Predicate: "Jill" likes oranges [/sourcecode] В следующем примере значение элемента массива передается по ссылке, что позволяет внести в массив изменения: [sourcecode language=”PHP” gutter=”true”] $test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange"); // применить к элементам массива function my_walk_function(&$val,$key){ $key = "Person: " .$key ." "; $val = "Fruit: \"" . $val ."\""; echo $key.$val; } array_walk($test_arr,"my_walk_function"); print_r($test_arr); //Результат: //Person: Ann //Fruit: "pineapple" //Person: Ben //Fruit: "pear" //Person: Peter //Fruit: "apple" //Person: Fill //Fruit: "plum" //Person: Jill //Fruit: "orange" //Array ( [Ann] => Fruit: "pineapple" //[Ben] => Fruit: "pear" //[Peter] => Fruit: "apple" //[Fill] => Fruit: "plum" //[Jill] => Fruit: "orange" //) [/sourcecode] Выделение подмассиваФункция array_slice() Функция array_slice() предназначена для выделения из массива его части. Синтаксис функции: array_slice (массив, номер_элемента [, длина]). В результате ее выполнения будет получен новый массив, состоящих из элементов начального массива, начиная с элемента, указанного в качестве второго параметра. При этом положительное значение второго параметра указывает на номер элемента относительно начала массива, отрицательный – на номер элемента с конца массива. Третий параметр опционален, он определяет количество выделяемых элементов, параметр может иметь и отрицательное значение, в этом случае с конца массива будет удалено количество элементов, равное модулю параметра длина. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange"); $sub_test_arr = array_slice($test_arr,2); print_r($sub_test_arr); //Результат: //Array ( [Peter] => apple [Fill] => plum [Jill] => orange ) $sub_test_arr = array_slice($test_arr,-2); print_r($sub_test_arr); //Результат //Array ( [Fill] => plum [Jill] => orange ) $sub_test_arr = array_slice($test_arr,1, 2); print_r($sub_test_arr); //Результат //Array ( [Ben] => pear [Peter] => apple ) $sub_test_arr = array_slice($test_arr,1, -3); print_r($sub_test_arr); //Результат //Array ( [Ben] => pear ) [/sourcecode] Если задать параметр длина при использовании array_slice, то будет выделен подмассив, имеющий ровно столько элементов, сколько задано этим параметром. Длину можно указывать и отрицательную. В этом случае интерпретатор удалит с конца массива число элементов, равное модулю параметра длина. Функция array_chunk() Функция array_chunk() предназначена для разбиения массива на подмассивы заданной длины. Синтаксис функции: array_chunk ( массив, размер [, сохранять_ключи]) Функция array_chunk() возвращает многомерный массив, элементами которого являются выделенные подмассивы. Для сохранения ключей начального массива третий параметр необходимо задать как true. [sourcecode language=”PHP” gutter=”true”] $test_arr =array("Ann"=>"pineapple", "Ben"=>"pear","Peter"=>"apple", "Fill"=>"plum", "Jill"=>"orange"); $arr = array_chunk($test_arr, 2, true); print_r($arr); //Результат: //Array( //[0] => Array ( [Ann] => pineapple [Ben] => pear ) //[1] => Array ( [Peter] => apple [Fill] => plum ) //[2] => Array ( [Jill] => orange ) //) [/sourcecode] |
Реферат на тему «Excel. Использование функций рабочей таблицы. Аргументы.... «Excel. Использование функций рабочей таблицы. Аргументы. Мастер функций. Логические, информационные функции и функции работы со... | Уро Тема урока: Язык программирования Visual Basic. Работа с массивами Ввести понятие массива, его размерности. Познакомиться с фиксированными и динамическими массивами, способами их описания | ||
Реферат Записка Цель работы – разработка и программная реализация биллинговой системы для хостинг-провайдера с использованием технологий php, Mysql,... | «Динамическое Web-Программирование» Целью курса "Динамическое Web-Программирование" является изучение принципов разработки приложений, работающих в среде Интернет и... | ||
Программа по формированию навыков безопасного поведения на дорогах... Цель работы: Изучить базовые операции по работе с массивами. Изучить синтаксис команд. Приобрести навыки работы с подзапросами в... | Лабораторная работа №3. Создание тестовой системы и счетчика посещений... Правоведение: учебно-методическое пособие для самостоятельной работы студентов [Текст] / сост. С. И. Гутник. – Красноярск: Сиб федер... | ||
1 Описание выбранной программной среды(php) Для конкурсной работы я решил создать динамический сайт посвященный урокам по html и css. А почему именно эти уроки? Да потому что... | Программа по формированию навыков безопасного поведения на дорогах... Знакомство с понятиями – массив, индекс элемента, элемент массива, базовый тип, размерность, этапы работы с массивами; рассмотреть... | ||
Программа по формированию навыков безопасного поведения на дорогах... Цель урока: обобщить знания учащихся о понятии функции, аргумента, функции вида y= kx, y= kx + b, y= x2, y= kx2, y= x3, y= kx3, ввести... | Программа по формированию навыков безопасного поведения на дорогах... Обязательно ли построение графика линейной функции для того, чтобы определить вид монотонности функции? (Сформулировать теоремы).... | ||
Программа по формированию навыков безопасного поведения на дорогах... Управление сайтом". При составлении документа подразумевалось, что разработчик владеет терминологией и основными приемами работы... | Программа по формированию навыков безопасного поведения на дорогах... Предел функции в точке. Предел последовательности. Общие свойства предела функции. Предел функции в точке по множеству. Необходимое... | ||
Геометрические преобразования Бласти определения функции ставит в соответствие некоторое число f(X) – значение функции f в точке Х. В геометрии рассматриваются... | Программа по формированию навыков безопасного поведения на дорогах... Цели урока: сформировать навыки построения графика функции, определять наибольшее и наименьшее значение функции, область значений... | ||
Программа по формированию навыков безопасного поведения на дорогах... Ввести определение функции, области определения функции, области значений функции | Вводный Преподаватели концентрируются на навыках, необходимых для освоения академической программы: умении слушать и записывать лекции, выражать... |