Изучаем PHP программирование

   Search   

Русская версия | English version   

Скрипты :: Секреты профессионалов :: Link :: FAQ   Пишите письма  



 

главная :: основы PHP

Поиск элементов массива

Поиск элементов относится к числу важнейших операций с массивами. В РНР существует несколько стандартных функций, позволяющих легко находить в массиве нужные ключи и значения. in_array( ) Функция i n_array ( ) проверяет, присутствует ли в массиве заданный элемент. Если поиск окажется удачным, функция возвращает TRUE, в противном случае возвращается FALSE. Синтаксис функции in_array( ): bool in_array(mixed элемент, array массив) Эта функция особенно удобна тем, что вам не приходится в цикле перебирать весь массив в поисках нужного элемента. В следующем примере функция in_array( ) ищет элемент "Russian" в массиве $languages: $languages = array("English", "Gaelic", "Spanish"): $exists = in_array("Russian", $languages); // $exists присваивается FALSE $exists = in_array("English", $languages): // $exists присваивается TRUE Функция in_array( ) часто встречается в управляющих конструкциях, когда ее возвращаемое значение (TRUE/FALSE) используется для выбора одного из двух вариантов продолжения. В следующем примере функция in_array( ) используется для выбора одного из двух вариантов в условной команде if: // Ввод данных пользователем $language = "French"; $email = "wjgilmore@hotmail.com"; // Если язык присутствует в массиве if (in_array($language. $languages)) : // Подписать пользователя на бюллетень. // Обратите внимание: в РНР нет стандартной функции с именем // subscribe_user(). В данном примере эта функция просто имитирует // процесс подписки. subscribe_user($email, $language); print "You are now subscribed to the $language edition of the newsletter."; // Язык отсутствует в массиве else : print "We're sorry, but we don't yet offer a $language edition of the newsletter". endif; Что происходит в этом примере? Допустим, переменные $language и $email содержат данные, введенные пользователем. Вы хотите убедиться в том, что указанный язык поддерживается вашей системой, и используете для этой цели функцию in_array( ). Если название языка присутствует в массиве, пользователь подписывается на бюллетень и получает соответствующее сообщение. В противном случае программа сообщает, что на указанном языке бюллетень не распространяется. Конечно, в настоящей программе пользователь не должен гадать, какие языки поддерживаются вашей программой. Задача решается при помощи раскрывающегося списка — эта тема подробно рассматривается в главе 10. Здесь этот пример всего лишь демонстрирует возможности работы с массивами. array_keys( ) Функция array_keys( ) возвращает массив, содержащий все ключи исходного массива, переданного в качестве параметра. Если при вызове передается дополнительный параметр искомый_элемент, возвращаются только ключи, которым соответствует заданное значение; в противном случае возвращаются все ключи массива. Синтаксис функции array_keys( ): array array_keys (array массив [, mixed искомый_элемент]) Рассмотрим пример использования функции array_keys( ) для получения ключа заданного элемента: $great_wines = array ("Australia" => "Clarendon Hills 96", "France" => "Comte George de Vogue 97", "Austria" => "Feiler Artinger 97"); $great_labels = array_keys($great_wines); // $great_labels = array("Australia", "France", "Austria"); $great_labels = array_keys($great_wines, "Clarendon Hills 96"); // $great_labels = array("Australia"); Функция array_keys( ) позволяет очень легко получить все ключи ассоциативного массива — например, в предыдущем случае ими были названия стран, в которых производятся различные сорта вин. array_values( ) Функция array_values( ) возвращает массив, состоящий из всех значений исходного массива, переданного в качестве параметра. Синтаксис функции array_values( ): array array_values(array массив) Вернемся к предыдущему примеру, в котором функция array_keys( ) использовалась для получения всех значений ключей. На этот раз функция array_values( ) возвращает все значения, соответствующие ключам: // $great_wines = array ("Australia" => "Clarendon Hills 96", // "France" => "Comte George de Vogue 97", // "Austria" => "Feiler Artinger 97"); $great_labels = array_values($great_wines); // $great_labels = аrrау("Clarendon Hills 96", // "Comte George de Vogue 97", // "Feiler Artinger 97"); Функции array_keys( ) и array_values( ) дополняют друг друга, позволяя при необходимости получить все составляющие той или иной стороны ассоциативного массива.

Designed by Fedin
All right reserved
2003-2004
Hosted by uCoz