@blvckmania

Как сделать общую проверку по элементам массива?

Имеем такой массив
Array
(
    [id] => 198
    [0] => Array
        (
            [okey] => 0
        )

    [1] => Array
        (
            [okey] => 1
        )

    [2] => Array
        (
            [okey] => 1
        )

)

Как реализовать условие таким образом, чтобы оно выполнялось только в том случае, если в каждом из ключей массива (0,1,2) ключ `okey` был равен 1, а не 0, с учетом того, что количество ключей динамично и может быть любым?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@bkosun
$result = empty(array_filter($array, function($v){
			return is_array($v) && isset($v['okey']) && $v['okey'] !== 1;
		})) ? true : false;


https://www.php.net/manual/ru/function.array-filter.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@prostoprofan
function checkArrayOkey($array){
$result = true;
if(is_array($array)){
foreach($array as $value){
 if(is_array($value) && isset($value['okey']) && intval($value['okey']) != 1){
  $result = false;
 break;
 }
}
return $result;
}

}

Функция принимает массив и на выходе выдает true или false. True - проверка пройдена, false - не везде стоит 1 в okey
Ответ написан
Комментировать
@ar2rsoft
PHP-developer
array_reduce Должен помочь, а логика колбэка такая же как в комменте выше
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы