Вход | Регистрация


Помогите с PHP кодом

Помогите с PHP кодом
Я
   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; как будто игнорируется, что я не так делаю?
 
 
   mxs089
 
2 - 06.10.16 - 13:37
может быть потому что dats - пустой массив
   mxs089
 
3 - 06.10.16 - 13:40
вообще выходишь из рекурсии?
   mxs089
 
4 - 06.10.16 - 13:42
build_tree по мне никогда не выйдет из рекурсии, если при вызове есть данные
   mxs089
 
5 - 06.10.16 - 14:04
$cat['nodes'] = $this->build_tree($dats);

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует