Функция array_search

Это еще одна функция для поиска значения в массиве. В отличие от in_array в результате работы array_search возвращает значение ключа, если элемент найден, и ложь – в противном случае.

array_search("искомое значение", "массив", "ограничение на тип");

Сравнение строк чувствительно к регистру, а если указан третий аргумент, то сравниваются еще и типы значений.

Пример 2. Пусть есть массив языков программирования. Причем ключом каждого элемента является номер, указывающий, каким по счету был изучен этот язык.

<?php

$langs = array("Lisp", "Python", "Java", "PHP", "Perl");

if (!array_search("PHP", $langs)) echo "PHP не изучали<br>";

else

{

$k = array_search("PHP", $langs);

echo "PHP изучен $k – м";

}

?>

Если искомых элементов в массиве несколько, то в этом случае функция array_search() вернет ключ первого из найденных элементов. Чтобы получить ключи всех элементов, нужно воспользоваться функцией array_keys().

Функция array_keys выбирает все ключи массива. Но у нее имеется дополнительный аргумент, с помощью которого можно получить список ключей элементов с конкретным значением.

array_keys ("массив", "значение для поиска");

Функция array_keys() возвращает как строковые, так и числовые ключи массива, организуя все значения в виде нового массива с числовыми индексами.

<?php

$langs = array("Lisp", "Python", "Java", "PHP", "Perl", "Lisp");

$lisp_keys = array_keys($langs, "Lisp");

echo "Lisp входит в массив ".count($lisp_keys)." раза:<br>";

foreach ($lisp_keys as $val) echo "- под номером $val<br>";

?>

В результате получим:

Lisp входит в массив 2 раза:

- под номером 0

- под номером 5

Функция array_values(массив) - функция для получения всех значений массива. Все значения переданного ей массива записываются в новый массив, проиндексированный целыми числами, т.е. все ключи массива теряются, остаются только значения.

Функция array_unique(массив) возвращает новый массив, в котором повторяющиеся элементы фигурируют в одном экземпляре. Таким образом, вместо нескольких одинаковых значений и их ключей мы имеем одно значение.

<?php

$langs = array("Lisp", "Java", "Python", "Java", "PHP", "Perl", "Lisp");

print_r(array_unique($langs));

?>

Получим следующее:

Array ([0] => Lisp [1] => Java [2] => Python [3] => PHP [4] => Perl)

Функция array_slice выделяет из массива какой-нибудь поднабор.

array_slice (массив, номер_элемента, длина);

Эта функция выделяет подмассив длины длина в массиве массив, начиная с элемента, номер которого задан параметром номер_элемента.

Если задать параметр длина при использовании array_slice, то будет выделен подмассив, имеющий ровно столько элементов, сколько задано этим параметром. Длину можно указывать и отрицательную. В этом случае интерпретатор удалит с конца массива число элементов, равное модулю параметра длина. Если длина не задана, то подмассив выделяется до конца исходного массива.

Положительный номер_элемента указывает на порядковый номер элемента относительно начала массива, отрицательный – на номер элемента с конца массива.

<?php

$arr = array(1, 2, 3, 4, 5);

$sub_arr = array_slice($arr, 2);

print_r($sub_arr); //выведет подмассив, состоящий из элементов 3, 4, 5

$sub_arr = array_slice($arr,-2);

print_r($sub_arr); // выведет подмассив, из элементов 4, 5

$sub_arr = array_slice($arr, 2, 2); // содержит массив из элементов 3, 4

$sub = array_slice($arr,-3, 2); // тоже содержит массив из элементов 3, 4

$sub1 = array_slice($arr,0, -1); // содержит массив из элементов 1, 2, 3, 4

$sub2 = array_slice($arr,-4, -2); // содержит массив из элементов 2, 3

?>


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: