Как просканировать массив и выполнить заданное условие?

Внутри переменной $categories содержится прикрепленный ниже массив.

Как задать условие, чтобы PHP просканировал массив и выполнил команду echo $categories -> category_name, только если внутри него имеется $child->category_name;, значение которого равняется, например, "Ноутбуки"?

<pre>
Array
(
    [0] => stdClass Object
        (
            [category_name] => 3Q
            [childs] => Array
                (
                    [0] => stdClass Object
                        (
                            [category_name] => Ноутбуки
                        )

                    [1] => stdClass Object
                        (
                            [category_name] => Планшеты
                        )

                )

        )

    [1] => stdClass Object
        (
            [category_name] => 4Good
            [childs] => Array
                (
                    [0] => stdClass Object
                        (
                            [category_name] => Ноутбуки
                        )

                    [1] => stdClass Object
                        (
                            [category_name] => Планшеты
                        )

                )

        )
</pre>


Ответы (1 шт):

Автор решения: u_mulder
// Для начала начнем обходить массив ОБЪЕКТОВ
foreach ($categories as $category) {
    // Теперь обойдем массив ОБЪЕКТОВ из свойства childs и проверим что там есть
    foreach ($category->childs as $child) {
        if ($child->category_name === 'Ноутбуки') {
            // выводим название родительской категории
            echo $category->category_name;
            // Так как нужное название найдено 
            // проверять следующие элементы не имеет смысла
            break;
        }
    }
}
→ Ссылка