Функция array_search – поиск значения в массиве.


Функция php array_search() позволяет искать определенное значение в массиве. При этом, если оно будет найдено, то функция возвратит индекс (ключ) найденного элемента. Если же искомого значения в массиве нет, то будет возвращено FALSE.

Общий синтаксис:

1
mixed array_search (mixed needle, array haystack [, bool strict])

Принимаемые функцией параметры:

needle – искомое значение
haystack – массив, в котором необходимо осуществлять поиск
strict – необязательный параметр (имеет булев тип). Если указать TRUE, то при поиске также будет сверяться тип искомого и найденного значения.

Обратите внимание, что если найденное значение имеет индекс с номером 0, то при обычной проверке мы также можем получить FALSE:

1
2
3
4
5
6
7
8
9
<?php
$my_array = array(0 => 'milk', 1 => 'bread', 2 => 'ice cream');
$key = array_search('milk', $my_array); 
if($key == FALSE){
    echo "Значение не найдено";
}else{
    echo "Индекс найденого элемента: ".$key;
}
?>

В этом примере будет выведено «Значение не найдено». Чтобы скрипт сработал верно, нам необходимо производить проверку с учетом типа получаемого значения (три знака равно ===):

1
2
3
4
5
6
7
8
9
<?php
$my_array = array(0 => 'milk', 1 => 'bread', 2 => 'ice cream');
$key = array_search('milk', $my_array); 
if($key === FALSE){
    echo "Значение не найдено";
}else{
    echo "Индекс найденого элемента: ".$key;
}
?>

Некоторые особенности работы функции:

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

1
2
3
4
5
6
7
8
9
10
<?php
$my_array = array(0 => 'milk', 1 => 'bread', 2 => 'ice cream', 3 => 'bread');
 
$key = array_search('milk', $my_array);
if($key === FALSE){
    echo "Значение не найдено";
}else{
    echo $key;// вернет 1
}
?>




Другие посты

Категория: PHP-скрипты

Оставить комментарий