Как просканировать массив и выполнить заданное условие?
Внутри переменной $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;
}
}
}