php - DYNAMIC ARRAY BUILDING
one text
Here, I will show what I tried, here is my code:
<?php
require('../db_connection.php');
$data = json_decode(file_get_contents("php://input"));
// $groupId = $data->groupId;
$groupId = '0000000001';
$menus = array();
$items = array();
$query = mysqli_query($db_conn, "SELECT DISTINCT module_id, module_name_eng
FROM v_usergroupappitems
WHERE group_id = '".$groupId."' AND module_active = 1 ORDER BY module_id");
while ($modules = mysqli_fetch_assoc($query)) {
$menus[] = $modules;
$module_id = $modules['module_id'];
$items_query = mysqli_query($db_conn, "SELECT item_id, item_name_eng, page_link
From v_usergroupappitems
WHERE module_id = '$module_id'
AND group_id = '".$groupId."'
AND active = 1 ORDER BY 'item_id' ");
while ($item_list = mysqli_fetch_assoc($items_query)) {
$items[] = $item_list;
array_push($menus, $items);
}
}
// echo $rows;
echo json_encode($menus);
?>
I could return an array of modules using:
$menus[] = $modules;
like this:
[{"module_id":"1","module_name_eng":"Application Administration"},{"module_id":"2","module_name_eng":"Outpatient Data Setup"},{"module_id":"3","module_name_eng":"Medical Insurance Companies"},{"module_id":"4","module_name_eng":"Outpatient Section"},{"module_id":"5","module_name_eng":"Outpatient Doctors` Fees"},{"module_id":"6","module_name_eng":"Patient Visit Medical Records"},{"module_id":"7","module_name_eng":"Inpatient Data Setup"},{"module_id":"8","module_name_eng":"Inpatient Section"},{"module_id":"12","module_name_eng":"Money Setup-Transactions-Reports"}]
what I need is to add each module items as array inside its object, just like that:
[{"module_id":"1","module_name_eng":"Application Administration", "items": [{"item_id":"1","item_name_eng":"Company Data","page_link":"link1"},{"item_id":"2","item_name_eng":"User Groups","page_link":"link2"}]}]
but my problem is: i am getting that:
[{"module_id":"1","module_name_eng":"Application Administration"},[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"}],[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"},{"item_id":"2","item_name_eng":"User Groups","page_link":"\/dashboard\/usergroupslist"}],[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"},{"item_id":"2","item_name_eng":"User Groups","page_link":"\/dashboard\/usergroupslist"},{"item_id":"3","item_name_eng":"System Users","page_link":"..\/SA\/user.php"}],[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"},{"item_id":"2","item_name_eng":"User Groups","page_link":"\/dashboard\/usergroupslist"},{"item_id":"3","item_name_eng":"System Users","page_link":"..\/SA\/user.php"},{"item_id":"64","item_name_eng":"Users System Login","page_link":"..\/sa\/rpt_users_login.php"}],[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"},{"item_id":"2","item_name_eng":"User Groups","page_link":"\/dashboard\/usergroupslist"},{"item_id":"3","item_name_eng":"System Users","page_link":"..\/SA\/user.php"},{"item_id":"64","item_name_eng":"Users System Login","page_link":"..\/sa\/rpt_users_login.php"},{"item_id":"65","item_name_eng":"User System Login","page_link":"..\/sa\/rpt_user_login.php"}],{"module_id":"2","module_name_eng":"Outpatient Data Setup"},[{"item_id":"1","item_name_eng":"Company Data","page_link":"..\/sa\/company.php"},{"item_id":"2","item_name_eng":"User Groups","page_link":"\/dashboard\/usergroupslist"},{"item_id":"3","item_name_eng":"System Users","page_link":"..\/SA\/user.php"},
that is not the structure i need to get, i need the following structure:
[{"module_id":"1","module_name_eng":"Application Administration", "items": [{"item_id":"1","item_name_eng":"Company Data","page_link":"link1"},{"item_id":"2","item_name_eng":"User Groups","page_link":"link2"}]}]
Source