如何组合成单个变量数组

In my php script I had this $array variable.

$array = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName']);

$array['items'][] = array('groupID' => $row2['GroupID'],'groupname' =>$row2['groupName'] ,'items' => $progName);    

Any idea how can I combine both array into one variable? (without using array_merge) So it can produce result like this.

[
  {
   moduleID: "LA1",
   module: "Accounting",
   items: [
    {
     groupID: "LA6",
     groupname: "COA Management",
     items: [
      {
       programID: "LA12",
       programName: "Ledger Management"
      },
      {
       programID: "LA24",
       programName: "Group Management"
      },
      {
       programID: "LA26",
       programName: "Bank Accounts"
      }
     ]
    }
   ]
  },
  ........
]

i try to do like this but it missing [ ] after first items

$array = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName'], 'items' => ['groupID' => $row2['GroupID'],'groupname' =>$row2['groupName'] ,'items' => $progName]);

Here I provide full php function

I had somethig similar soon. And i used array_push for that. Also I used a function to get a child. Then i put a function inside of array.

I used here for loop. I'm sure u gonna use foreach loop.

Try something like this :)

Fiddle here

<?php

function ChildChild(){
    $array = array();
    for ($i=0; $i < 2 ; $i++) {
        $array1 = array(
            'programID' => 'programID',
            'programName' =>'programName',
            'ehorsProgramID' => 'ehorsProgramID'
        );
        array_push($array, $array1);
    }
    return $array;
}

function Child(){

    $array = array();
    for ($i=0; $i < 2 ; $i++) {
        $array1 = array(
            'groupID' => 'GroupID',
            'groupname' =>'groupName',
            'items' => ChildChild()
        );
        array_push($array, $array1);
    }
    return $array;
}

$main_array = array();

    for ($e=0; $e < 2 ; $e++) {

        $array1 = array(
            'moduleID' => 'ModuleID',
            'module' => 'moduleName',
            'items' => Child()
        );
        array_push($main_array, $array1);
    }


echo '<pre>';
print_r($main_array);
echo '</pre>';

OUTPUT FOR<2

Array
(
    [0] => Array
        (
            [moduleID] => ModuleID
            [module] => moduleName
            [items] => Array
                (
                    [0] => Array
                        (
                            [groupID] => GroupID
                            [groupname] => groupName
                            [items] => Array
                                (
                                    [0] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                    [1] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [groupID] => GroupID
                            [groupname] => groupName
                            [items] => Array
                                (
                                    [0] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                    [1] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [moduleID] => ModuleID
            [module] => moduleName
            [items] => Array
                (
                    [0] => Array
                        (
                            [groupID] => GroupID
                            [groupname] => groupName
                            [items] => Array
                                (
                                    [0] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                    [1] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [groupID] => GroupID
                            [groupname] => groupName
                            [items] => Array
                                (
                                    [0] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                    [1] => Array
                                        (
                                            [programID] => programID
                                            [programName] => programName
                                            [ehorsProgramID] => ehorsProgramID
                                        )

                                )

                        )

                )

        )

)

You will have to build inner array first while constructing the layers of these three arrays. Below is the sample code that will work fine for your case:

<?php
$array = array();

$modules = array();
/* logic to get array of modules goes here */
$modules = array(
    array('ModuleID'=>'LA1', 'moduleName'=>'Accounting'), 
    array('ModuleID'=>'LA11', 'moduleName'=>'Development'), 
);
foreach ($modules as $row1) {
    $groups = array();
    /* logic to get array of groups for $row1['ModuleID'] goes here */
    $groups = array(
        array('GroupID'=>'LA6', 'groupName'=>'COA Management'), 
        array('GroupID'=>'LA66', 'groupName'=>'COA Management Part 2'), 
    );
    $groupItems = array();
    foreach ($groups as $row2) {
        $programItems = array();
        /* logic to get array of programs for $row2['GroupID'] goes here */
        $programItems = array(
            array('programID'=>'LA12', 'programName'=>'Ledger Management'),
            array('programID'=>'LA24', 'programName'=>'Group Management'),
            array('programID'=>'LA26', 'programName'=>'Bank Accounts'),
        );
        $groupItems[] = array('groupID'=>$row2['GroupID'], 'groupname'=>$row2['groupName'], 'items'=>$programItems);
    }
    $array[] = array('moduleID' => $row1['ModuleID'] , 'module' => $row1['moduleName'], 'items'=>$groupItems);
}
echo '<pre>'. json_encode($array, JSON_PRETTY_PRINT) . '</pre>'; exit;
?>