Функций которая по идентификатору категории возвращает название категории
Дбрый день. Нужно реализовать функцию, которая по идентификатору категории возвращает название категории.(Передаю '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 шт):
Автор решения: богдан максимчук
→ Ссылка
Этот масив скоре всего вы будете брать с бд так что можна использоть mysql запрос что бы получить нужную категорию.
Немного не понял смысла поиска в одномерном масиве но если все верно то решение следуйщее:
<?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);