Поиск по массиву (php): array_search(), in_array(), isset(), array_key_exists()


По сути, если необходимо найти какое-то значение в массиве, то сделать это достаточно просто, перебрав весь массив с помощью функции foreach():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$arr = ['one' => 1, 'two' => 2, 'five' =>5];
$searchValue = 2;
$exists = false;
foreach ($arr as $key => $value) {
    $exists = true;
    if ($value == $searchValue) {
        $exists = true;
        break;
    }
}
if ($exists) {
    echo 'Такое значение есть в массиве';
} else {
    echo 'Такого значения нет в массиве';
}

Аналогично проверяется и существование искомого ключа (проверять $key, а не $value).

Однако, все это не очень эстетично, поскольку код получается достаточно длинный. Лучше всего использовать встроенные функции php, с помощью которых то же самое можно сделать намного эффективнее.

in_array() — позволяет проверить, есть ли какое-то значение в массиве.

1
2
3
4
5
6
7
<?php
$arr = ['one' => 1, 'two' => 2, 'five' =>5];
if (in_array(2, $arr) {
    echo 'Такое значение есть в массиве';
} else {
    echo 'Такого значения нет в массиве';
}

Как видите, код сократился практически в 3 раза.

isset() — позволяет проверить существование элемента в массиве с конкретным ключом:

1
2
3
4
5
6
7
<?php
$arr = ['one' => 1, 'two' => 2, 'five' =>5];
if (isset($arr['two'])) {
    echo 'Такой элемент есть в массиве';
} else {
    echo 'Такого элемента нет в массиве';
}

Здесь мы проверяем, существует ли в массиве элемент с ключом «two».

array_key_exists() — проверяет, есть ли заданный ключ в массиве:

1
2
3
4
5
6
7
<?php
$arr = ['one' => 1, 'two' => 2, 'five' =>5];
if (array_key_exists("one", $arr)) {
    echo 'Такой ключ есть в массиве';
} else {
    echo 'Такого ключа нет в массиве';
}

Результат работы этой функции схож с функцией isset().

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





Другие посты

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

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