Задать вопрос
@DeniSidorenko

Как сделать проверку по ключу?

Добрый день , есть такой массив на php

array(2) {
  [0]=>
  array(4) {
    ["category_id"]=>
    string(3) "137"
    ["name"]=>
    string(49) "Лента термоуплотнительная"
    ["children"]=>
    array(0) {
    }
    ["href"]=>
    string(90) "http://site/index.php?route=product/category&path=1_134_135_136_137"
  }
  [1]=>
  array(4) {
    ["category_id"]=>
    string(3) "138"
    ["name"]=>
    string(89) "Огнезащита для воздуховодов с применением матов"
    ["children"]=>
    array(0) {
    }
    ["href"]=>
    string(90) "http://site.ru/index.php?route=product/category&path=1_134_135_136_138"
  }
}


Каждый массив - это еще один массив с ключами. Сам массив что выше находиться в переменной. Вопрос, как мне сделать проверку что если хотя бы у одного элемента массив children не пустой, тогда выполнить одну функцию. Т.е в примере что выше children везде пустые, но если хотя где то будет ['children'] =>array(1) то выполнить условия. Заранее спасибо
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
megakor
@megakor
Go/PHP developer | ВКонтакте
$array = [/* ... */];

if (arrHasChildren($array)) {
    // doSomeThing();
}

function arrHasChildren(array $array): bool
{
    foreach ($array as $value) {
        if (!empty($value['children'])) {
            return true;
        }
    }

    return false;
}
Ответ написан
Kozack
@Kozack
Thinking about a11y
На вскидку, примерно так:
function array_any(array $array, callable $fn) {
    foreach ($array as $value) {
        if($fn($value)) {
            return true;
        }
    }
    return false;
}

array_any($arr, function ($i) { return !empty($i['children']) }) // true || false
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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