Как получить следующий массив в качестве вывода при вызове данных из базы данных в codeIgniter [в режиме ожидания]

Массив как

<?php

        $value = array (
          'name' => 'Ajay Kumar',
          'title' => 'general manager',
          'children' => 
          array (
            0 => 
            array (
              'name' => 'Aniket kumar',
              'title' => 'department manager',
            ),
            1 => 
            array (
              'name' => 'Pratik Mehata',
              'title' => 'department manager',
              'children' => 
              array (
                0 => 
                array (
                  'name' => 'Namarta Dongra',
                  'title' => 'senior engineer',
                ),
                1 => 
                array (
                  'name' => 'Devendra More',
                  'title' => 'senior engineer',
                  'children' => 
                  array (
                    0 => 
                    array (
                      'name' => 'Amol Chiman',
                      'title' => 'engineer',
                    ),
                    1 => 
                    array (
                      'name' => 'Manish Gudekar',
                      'title' => 'UE engineer',
                      'children' => 
                      array (
                        0 => 
                        array (
                          'name' => 'Snehal Sawant',
                          'title' => 'Intern',
                        ),
                      ),
                    ),
                  ),
                ),
              ),
            ),
            2 => 
            array (
              'name' => 'Neetu Chauhan',
              'title' => 'department manager',
            ),
            3 => 
            array (
              'name' => 'Swapnil Dalwi',
              'title' => 'department manager',
            ),
          ),
        );
        $result = json_encode ($value);
        ?>

Имя таблицы базы данных Сотрудник выглядит следующим образом:

Sr.No.     Employee Name         Reporting Name      Designation
---------------------------------------------------------------

 1        Ajay Kumar                                 general manager
 2        Aniket Kumar            Ajay Kumar         department manager
 3        Pratik Mehata           Ajay Kumar         department manager
 4        Neetu Chauhan           Ajay Kumar         department manager
 5        Swapnil Dalwi           Ajay Kumar         department manager
 6        Namrata Dongra          Pratik Mehata      senior engineer
 7        Devendra More           Pratik Mehata      senior engineer
 8        Amol Chiman             Devendra More      engineer
 9        Manish Gudekar          Devendra More      engineer
 10       Snehal Sawant           Manish Gudekar     intern

Я попробовал следующий код:

public function index()
    {

        $table_name = 'org_chart';

        $data['employee_data'] = $this->common_model->get_all_data($table_name);

        for($i=0;$i < count($data['employee_data']);$i++){
            $Reporting_Name=$data['employee_data'][$i]['EmployeeName'];
            $query = "where ReportingName = ? ";
            $data['rept_data'][$i] = $this->common_model->fetch_data('org_chart',$query,$Reporting_Name);

        }
//  for($i=0;$i < count($data['employee_data']);$i++){
    foreach($data['employee_data'] as $value){
        echo "<pre>";

        print_r($value);


    }
//  }
    //  print_r($data['rept_data']) ;

    }


but its giving o/p as below:

Array
(
    [id] => 1
    [EmployeeName] => Ajay Kumar
    [ReportingName] => 
    [Designation] => general manager
    [srno] => 1
)
Array
(
    [id] => 2
    [EmployeeName] => Aniket Kumar
    [ReportingName] => Ajay Kumar
    [Designation] => department manager
    [srno] => 2
)
Array
(
    [id] => 3
    [EmployeeName] => Pratik Mehata
    [ReportingName] => Ajay Kumar
    [Designation] => department manager
    [srno] => 3
)
Array
(
    [id] => 4
    [EmployeeName] => Neetu Chauhan
    [ReportingName] => Ajay Kumar
    [Designation] => department manager
    [srno] => 4
)
Array
(
    [id] => 5
    [EmployeeName] => Swapnil Dalwi
    [ReportingName] => Ajay Kumar
    [Designation] => department manager
    [srno] => 5
)
Array
(
    [id] => 6
    [EmployeeName] => Namrata Dongra
    [ReportingName] => Pratik Mehata
    [Designation] => senior engineer
    [srno] => 6
)
Array
(
    [id] => 7
    [EmployeeName] => Devendra More
    [ReportingName] => Pratik Mehata
    [Designation] => senior engineer
    [srno] => 7
)
Array
(
    [id] => 8
    [EmployeeName] => Amol Chiman
    [ReportingName] => Devendra More
    [Designation] => engineer
    [srno] => 8
)
Array
(
    [id] => 9
    [EmployeeName] => Manish Gudekar
    [ReportingName] => Devendra More
    [Designation] => engineer
    [srno] => 9
)
Array
(
    [id] => 10
    [EmployeeName] => Snehal Sawant
    [ReportingName] => Manish Gudekar
    [Designation] => intern
    [srno] => 10
)
-4
задан 13 August 2018 в 15:08

1 ответ

Я не знаю, как работает ваш запрос, но для данных, показанных на выходе, я думаю, что это должно работать ....

public function index()
{

    $table_name = 'org_chart';

    $data['employee_data'] = $this->common_model->get_all_data($table_name);

    for($i=0;$i < count($data['employee_data']);$i++){
        $Reporting_Name=$data['employee_data'][$i]['EmployeeName'];
        $query = "where ReportingName = ? ";
        $data['rept_data'][$i] = $this->common_model->fetch_data('org_chart',$query,$Reporting_Name);

    }
//  for($i=0;$i < count($data['employee_data']);$i++){
$new_data = [];
foreach($data['employee_data'] as $value){

    if(isset($value['ReportingName'] && $value['ReportingName']!= '')){
        $new_data[$value['ReportingName']]['children'] = array('name' => $value['EmployeeName'],'title' => $value['Designation']);

    }else{
     $new_data = $value;
    }


    echo "<pre>";

    print_r($value);


}
//  }
//  print_r($data['rept_data']) ; }
0
ответ дан 15 August 2018 в 17:01

Другие вопросы по тегам:

Похожие вопросы: