in_array

Checks if a value exists in an array

&reftitle.description; `bool` `in_array` `mixed` `needle` `array` `haystack` `bool` `strict`&false;

Searches for `needle` in `haystack` using loose comparison unless `strict` is set.

&reftitle.parameters;

`needle`

- The searched value.

  If `needle` is a string, the comparison is done in a case-sensitive manner.

`haystack`

- The array.

`strict`

- If the third parameter `strict` is set to &true; then the `in_array` function will also check the types of the `needle` in the `haystack`.

  Prior to PHP 8.0.0, a `string` `needle` will match an array value of `0` in non-strict mode, and vice versa. That may lead to undesireable results. Similar edge cases exist for other types, as well. If not absolutely certain of the types of values involved, always use the `strict` flag to avoid unexpected behavior.

&reftitle.returnvalues;

Returns &true; if `needle` is found in the array, &false; otherwise.

&reftitle.examples;

### `in_array` example

    <?php
    $os = array("Mac", "NT", "Irix", "Linux");
    if (in_array("Irix", $os)) {
        echo "Got Irix";
    }
    if (in_array("mac", $os)) {
        echo "Got mac";
    }
    ?>

The second condition fails because `in_array` is case-sensitive, so the program above will display:

    Got Irix

### `in_array` with strict example

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

    if (in_array('12.4', $a, true)) {
        echo "'12.4' found with strict check\n";
    }

    if (in_array(1.13, $a, true)) {
        echo "1.13 found with strict check\n";
    }
    ?>

&example.outputs;

    1.13 found with strict check

### `in_array` with an array as needle

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

    if (in_array(array('p', 'h'), $a)) {
        echo "'ph' was found\n";
    }

    if (in_array(array('f', 'i'), $a)) {
        echo "'fi' was found\n";
    }

    if (in_array('o', $a)) {
        echo "'o' was found\n";
    }
    ?>

&example.outputs;

      'ph' was found
      'o' was found

&reftitle.seealso;

- `array_search`
- `isset`
- `array_key_exists`