check
Definition
Arr::check(array $array, mixed|callable $condition, int $flag = 0): bool
Description
Check if some or every array element meets specified condition.
If CHECK_SOME
flag is NOT present then every array element must meet specified condition in order to pass check.
Condition
$condition
type
Description
callable
Callable should return truthy or falsy value (while using CHECK_STRICT
flag, return values other than true
are treated as false
).
Callable is supplied with either only element value (function($value)
) or pair of element value and key (function($value, $key)
) as arguments.
Arguments amount depend on callable definition and is dynamically resolved using reflection (defaults to 2 - value and key)
mixed
If condition type is different than callable
then every array element is compared against it value.
$value == $condition
by default
$value === $condition
if CHECK_STRICT
flag is enabled
Flags
Can be used as stand alone (i.e.Arr::CHECK_STRICT
) as well as in conjunction (i.e. Arr::CHECK_STRICT | Arr::CHECK_SOME
)
Constant name
Description
CHECK_STRICT
In case condition is callable
check if it result is exactly true
If condition is not callable
, then check if array element is equal to it both by value and type
See Condition section for more info
CHECK_SOME
Check will return true
on first array element that match specified condition or false if none of them matches it.
By default check
method will return true
only if ALL of array elements meet specified condition
Examples
$array = [1, '1', true];
// Every array element is EQUAL to 1 ($value == '1')
Arr::check($array, '1') -> true
// Only one array element is the SAME as 1 ($value === '1') which is not sufficient
Arr::check($array, '1', Arr::CHECK_STRICT) -> false
// When CHECK_SOME flag is present, one element is sufficient to pass check
Arr::check($array, '1', Arr::CHECK_STRICT | Arr::CHECK_SOME) -> true
// You can also use built-in functions to validate whole array
Arr::check($array, 'is_int') -> false
Arr::check($array, 'is_string') -> false
// When CHECK_SOME flag is present only one element need to meet specified condition
Arr::check($array, 'is_int', Arr::CHECK_SOME) -> true
Arr::check($array, 'is_string', Arr::CHECK_SOME) -> true
// Every value of array is truthy
Arr::check($array, function ($value) { return $value; }) -> true
// Above check can be simplified to
Arr::check($array, true) -> true
// Or even shorter
Arr::check($array, 1) -> true
// When CHECK_STRICT flag is present, check will fail for callback return values other true
Arr::check($array, function ($value) { return $value; }, Arr::CHECK_STRICT) -> false
// But when callback is written as follows check will pass
Arr::check($array, function ($value) { return boolval($value); }, Arr::CHECK_STRICT) -> true
// Above check will pass if we add CHECK_SOME flag cause of of the elements is exactly true
Arr::check($array, function ($value) { return $value; }, Arr::CHECK_STRICT | Arr::CHECK_SOME) -> true
// Callback function arguments count is automatically detected
Arr::check($array, function ($value, $key) { return $value > $key; }) -> false
// First array element 1 is greater than its key 0
Arr::check($array, function ($value, $key) { return $value > $key; }, Arr::CHECK_SOME) -> true
Last updated
Was this helpful?