|
Помогите с PHP кодом | ☑ | ||
|---|---|---|---|---|
|
0
rotting
06.10.16
✎
12:11
|
Вот рекурсивная функция:
public function build_tree($cats){ foreach ($cats as $cat) { $result = (new \yii\db\Query()) ->select(['id', 'name', 'parent_id', 'guid']) ->from('category') ->where(['parent_id' => $cat['id']]) ->all(); $i = 1; $dats = array(); foreach ($result as $dat) { $cat_detail['text'] = $dat['name']; $cat_detail['href'] = \yii\helpers\Url::to(['', 'id' => trim($dat['id'])]); $cat_detail['parent_id'] = $dat['parent_id']; $cat_detail['guid'] = $dat['guid']; $cat_detail['id'] = trim($dat['id']); $dats[$i] = $cat_detail; $i++; } $this->build_tree($dats); $cat['nodes'] = $dats; } return $cats; } Вот так ее вызываю: $result = (new \yii\db\Query()) ->select(['id', 'name', 'parent_id', 'guid']) ->from('category') ->all(); $cats = array(); $i=1; foreach ($result as $cat) { if (empty($cat['parent_id'])) { $cat_detail['text'] = $cat['name']; $cat_detail['href'] = \yii\helpers\Url::to(['', 'id' => trim($cat['id'])]); $cat_detail['parent_id'] = $cat['parent_id']; $cat_detail['guid'] = $cat['guid']; $cat_detail['id'] = trim($cat['id']); $cats[$i] = $cat_detail; $i++; }; } $tree = $this->build_tree($cats); Но эта строчка $cat['nodes'] = $dats; как будто игнорируется, что я не так делаю? |
|||
|
2
mxs089
06.10.16
✎
13:37
|
может быть потому что dats - пустой массив
|
|||
|
3
mxs089
06.10.16
✎
13:40
|
вообще выходишь из рекурсии?
|
|||
|
4
mxs089
06.10.16
✎
13:42
|
build_tree по мне никогда не выйдет из рекурсии, если при вызове есть данные
|
|||
|
5
mxs089
06.10.16
✎
14:04
|
$cat['nodes'] = $this->build_tree($dats);
|
| Форум | Правила | Описание | Секции | Поиск |