I need to dynamically produce child elements of an array, these are arrays them selves. So the end result should be (this is a simplified version of the code below to make it easier to understand):
Array
(
    [id] => 5000038642
    [name] => TrackVia Legacy Section of Array
    [description] => 
    [table_id] => 5000005024
    [records] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [table_id] => 1
                    [fields] => Array
                        (
                            [Name] => First Item
                        )
                   )
              [1] => Array
                (
                    [id] => 1
                    [table_id] => 1
                    [fields] => Array
                        (
                            [Name] => Second Item
                        )
                   )
        )
)
The nested arrays within Results are produced dynamically from a MySQL table, so >
$allItems = array();
    $item = array();
// Get each result and build the arrya
while($row = $resultAvailableBoxes->fetch_assoc()) {
                $item = array (
                "id"=> $row['id'], 
                "table_id"=> $row['id'], 
                "fields"=> array (
                    "Name"=> $row['box_title'], 
                    )
                );
                // Append the arrays on to each other
                $allItems[] = array_merge($allItems, $item);
    }
// Place the arrays within the "parent" array
$completeArray = array( 
            "id"=> 1000, 
            "name"=> "Sample",
            "description"=> "", 
            "table_id"=> 1000, 
                "records"=> 
                    $allItems
                );
As you can see I am then also trying to append each new array on to the last, before placing those arrays in to the "parent" array. This is where the problems happen.
Using the method
$allItems[] = array_merge($allItems, $item);
I get every array appended on to the last, but then again and again. Like this:
Array
(
    [id] => 5000038642
    [name] => TrackVia Legacy Section of Array
    [description] => 
    [table_id] => 5000005024
    [records] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [table_id] => 1
                    [fields] => Array
                        (
                            [Name] => Texan BBQ 1
                        )
                )
            [1] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [table_id] => 1
                            [fields] => Array
                                (
                                    [Name] => Texan BBQ 1
                                )
                        )
                    [id] => 9
                    [table_id] => 9
                    [fields] => Array
                        (
                            [Name] => Goan Sorpotel with Pea & Mint Pilau and Tomato Chutney
                        )
                )
        )
)
When I have 20 items, you can see this would become massive list and just doesn't work. Using the method
$allItems = array_merge($allItems, $item);
Returns only the last array being appended (i.e. it always overwrites whats already in the "allItems" array.
I have also used a simple method that I didn't expect to work, and sure enough it didnt:
$allItems .= $item;
I've come to the conclusion after reading these stackover flow questions which seem like the same thing but aren't or give weird results that I must be approaching this all wrong. Is this the wrong method full stop, or is it that I have missed something out to stop the child elements being continually added?
Appending Arrays (Stack Overflow) Can't concatenate 2 arrays in PHP
I've lost count of the other questions I've look at on this, including the PHP manual but I can't find anything more relevant the arrays_merge
 
     
     
    