# Finding

## find

#### Definition

```php
Arr::find(array|Iterator|IteratorAggregate $array, callable $condition, string $return = self::FIND_RETURN_VALUE): mixed|mixed[]
```

#### Description

Find array \(or iterable object\) element\(s\) that match specified condition.

#### Modes \(`$return` method argument\)

| Constant name | Description |
| :--- | :--- |
| FIND\_RETURN\_VALUE | Return first value of an array that match find condition |
| FIND\_RETURN\_KEY | Return first key of an array that match find condition |
| FIND\_RETURN\_ALL | Return array of all values \(preserving original keys\) that match find condition |

#### Examples

```php
$array = [
  'a' => 0, 
  'b' => 1, 
  3 => 'c', 
  4 => 5
];


Arr::find($array, 'boolval') -> 1
Arr::find($array, function ($element) {
  return is_string($element);
}) -> 'c'


Arr::find($array, 'boolval', Arr::FIND_RETURN_KEY) -> 'b'
Arr::find($array, function ($element) {
  return is_string($element);
}, Arr::FIND_RETURN_KEY) -> 3


Arr::find($array, 'boolval', Arr::FIND_RETURN_ALL) -> 
[
  'b' => 1, 
  3 => 'c', 
  4 => 5
]

Arr::find($array, function ($element) {
  return is_string($element);
}, Arr::FIND_RETURN_ALL) -> 
[
  3 => 'c',
]

Arr::find($array, function ($element) {
  return is_number($element);
}, Arr::FIND_RETURN_ALL) -> 
[
  'a' => 0,
  'b' => 1,
  4 => 5
]
```

