Laravel Tree Node

-2

Изображение 174551

Здесь я вызываю рекурсивную функцию для получения всех идентификаторов пользователей, которые добавлены пользователем. В этой системе я работаю с деревом, и я использую JOrgChart для сборки моего дерева.

Подобно:

[8,16,32,33,17,34,35,9,19,36,37,.........]

маршрут

Route::get('test11', function () {

       $jorg = new JOrgChart();
       return  $response = $jorg->testChart(2);

});

JOrgChart

 public function testChart($referral_id)
    {

        $users = DB::table('user_referrals')
                ->where('referral_id', $referral_id)
                ->lists('user_id');

        $this->chain[$referral_id] = $users;

        //[1]=>[2 ,3]
        return $this->ecursiveTrees($users, $this->chain[$referral_id]);

    }




 public function ecursiveTrees($referral_ids, &$arr)
 {
        // [1]=>[2,3] $arr is at [1]
        for ($i = 0; $i < sizeof($referral_ids); $i++) {
            //index 2
               $referrals = DB::table('user_referrals')
                        ->where('referral_id', $referral_ids[$i])
                        ->lists('user_id');

              unset($arr[$i]);
              $arr[$referral_ids[$i]] = $referrals;
            if (sizeof($referrals) > 0) {
                //[2]=>[4,5] reference [2]=>
                 $this->ecursiveTrees($referrals, $arr[$referral_ids[$i]]);
            }
        }
        return $arr;
}

Выход

{
    4: {
        8: {
          16: {
              32: [ ],
              33: [ ]
              },
          17: {
              34: [ ],
              35: [ ]
              }    
       }
    }
}

Ожидаемый результат

{ [ 
    4,
    8,
    16,
    17,
   32,
   33,
   34,
   35
]}

Мне нужен этот вывод, но я не могу сделать этот вывод.....

Теги:
eloquent
tree

1 ответ

0

На изображении нет данных, как вы ожидали, т.е.

[2,3,5,6,67,88,8,54,43]

Но если это JSON (как вы сказали), вы можете использовать json_decode и некоторые другие функции массива.

  • 0
    Я использую его, но он показывает мне ошибку --- json_decode () ожидает, что параметр 1 будет строкой, задан массив
  • 0
    Не могли бы вы отредактировать и сделать ваш вопрос более понятным, чтобы мы могли вам помочь?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню