sharomet
Новичок
Я использую mongodb.
К примеру у меня есть вот такая структура данных:
Для того что бы получить категорию любого уровня я использую рекурсию, но некоторые пишут что подобный метод может уложить весь сайт правда ли это?
Как лучше всего выводить подобные данные. Спасибо.
К примеру у меня есть вот такая структура данных:
Код:
{
"_id" : ObjectId("18b97aa654bce61356002559"),
"name" : "Category",
"childs" : [
{
"_id" : ObjectId("22b55aa654bce61356002559"),
"name" : "Sub Category",
"childs" :[
{
"_id" : ObjectId("33b55aa654bce61356002559"),
"name" : "Sub Sub Category",
"childs" : "",
"products":[
{
"_id" : ObjectId("44b55aa654bce61356002559"),
"name":"sub sub products"
}
]
}
]
}
],
}
PHP:
$category = Categories::find() -> limit(10) -> all();
$data= $this -> getChildById($category, $id)[0]; //передаём массив с категориями и id
public function getChildById($arr, $id) {
if(is_array($arr)){
if((string)$arr[0]['_id'] == $id){
return $arr;
}else {
foreach ($arr as $kay => $value) {
return $this -> getChildById($value['childs'], $id);
}
}
}
return false;
}