Функций которая по идентификатору категории возвращает название категории

Дбрый день. Нужно реализовать функцию, которая по идентификатору категории возвращает название категории.(Передаю 'id' и нужео что бы вывело значение ключа 'title' , котоырй находится в том же массиве). При реализации возникают трудности, в голове вроде бы есть алгоритм ,но не до конца могу его воплотить в коде:

        <?php
    
    $categories = [
        "id" => 1,
        "title" => "Компьютеры",
        "children" => [
            ["id" => 2, "title" => "Стационарные"],
            ["id" => 3, "title" => "Моноблоки"],
            ["id" => 4, "title" => "Ноутбуки"]
        ]
    ];
    
    function searchCategories($categories, $id) // Передается массив и id требуемой категории
{
    foreach ($categories as $key => $item) {
        if ($item == $id) {
            echo "По вашему идентификатору найдена категория" . ' ';
        } elseif (is_array($item)) {
            searchCategories($item, $id);
        }
    }
}


searchCategories($categories, 3);

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

Автор решения: богдан максимчук
  1. Этот масив скоре всего вы будете брать с бд так что можна использоть mysql запрос что бы получить нужную категорию.

  2. Немного не понял смысла поиска в одномерном масиве но если все верно то решение следуйщее:

     <?php
    

function searchCategories($categories, $id, $b = false) {

if (isset($categories['id']) && $categories['id'] == $id) {
    echo $categories['title'];
}

if (isset($categories['children'])) {
    searchCategories($categories['children'], $id);
}

if (is_array($categories) && !isset($categories['id'])) {
    foreach($categories as $key => $value)
    {
        if (is_array($value)) {
            searchCategories($value, $id, $key == 1);
        }
    }
}

}

$categories = [
    "id" => 1,
    "title" => "Компьютеры",
    "children" => [
        ["id" => 2, "title" => "Стационарные"],
        ["id" => 3, "title" => "Моноблоки"],
        ["id" => 4, "title" => "Ноутбуки"]
    ]
];

searchCategories($categories, 3);

→ Ссылка
Автор решения: Animov

Помощи как таковой не даждался, додумался сам:

    <?php

$categories = [
    "id" => 1,
    "title" => "Компьютеры",
    "children" => [
        ["id" => 2, "title" => "Стационарные"],
        ["id" => 3, "title" => "Моноблоки"],
        ["id" => 4, "title" => "Ноутбуки"]
    ]
];

function searchCategories($categories, $id) // Передается массив и id требуемой категории
{
    foreach ($categories as $key => $item) {
        if ($item == $id) {
            echo "По вашему идентификатору найдена категория" . ' ' . $categories['title'];
        } elseif (is_array($item)) {
            searchCategories($item, $id);
        }
    }
}

searchCategories($categories, 3);
→ Ссылка