Справочники, инструменты, документация

PHP: Функция in_array()

PHP-функция `in_array()` проверяет, присутствует ли в массиве значение.
$array = array("Mac", "NT", "Irix", "Linux");

if (in_array('Irix', $array)) {
    echo 'true';
}
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
 echo "Нашел Irix";
}
if (in_array("mac", $os)) {
 echo "Нашел mac";
}
// Второго совпадения не будет, потому что in_array() регистрозависима, 
таким образом, программа выведет: Нашел Irix

Проверка сразу нескольких значений в массиве

function in_array_all($needles, $haystack) {
    return empty(array_diff($needles, $haystack));
}

$array = array('Mac', 'NT', 'Irix', 'Linux');

if (in_array_all(array('Mac', 'Win'), $array)) {
    echo 'true';
} else {
    echo 'false'; // Выведется false т.к. в $array нет 'Win'
}

Одно из нескольких значений в массиве

function in_array_any($needles, $haystack) {
    return !empty(array_intersect($needles, $haystack));
}

$array = array('Mac', 'NT', 'Irix', 'Linux');

if (in_array_any(array('Mac', 'Win'), $array)) {
    echo 'true'; // Выведется true т.к. в $array есть 'Mac'
} else {
    echo 'false';
}

in_array для многомерного массива

function in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }
    return false;
}

$array = array(
    0 => array('Mac'),
    1 => array('NT'),
    2 => array('Irix'),
    3 => array('Linux')
);

if (in_array_r('Mac', $array)) {
    echo 'true'; // Выведется true
} else {
    echo 'false'; 
}

Использования in_array() с параметром strict

$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
 echo "'12.4' найдено со строгой проверкой\n";
}

if (in_array(1.13, $a, true)) {
 echo "1.13 найдено со строгой проверкой\n";
}
// Результат выполнения данного примера:
// 1.13 найдено со строгой проверкой

Использования in_array() с массивом в качестве параметра needle

$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
 echo "'ph' найдено\n";
}

if (in_array(array('f', 'i'), $a)) {
 echo "'fi' найдено\n";
}

if (in_array('o', $a)) {
 echo "'o' найдено\n";
}
// Результат выполнения данного примера:
// 'ph' найдено
// 'o' найдено