Массив как
<?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
)
Я не знаю, как работает ваш запрос, но для данных, показанных на выходе, я думаю, что это должно работать ....
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']) ; }