I have a multidimensional array that looks like this:
<?php
$array = array(
"categories" => array(
    array(
        array(
            "arr1" => array(
                'Name' => "some name associated with 300",
                'availability' => true,
                'amount' => 300
            ),
            "arr2" => array(
                'Name' => "some other name",
            ),
            "arr3" => array(
                'Name' => "some other name",
            )
        )
    ),
    array(
        array(
            "arr1" => array(
                'Name' => "some name associated with 59",
                'availability' => true,
                'amount' => 59
            ),
            "arr2" => array(
                'Name' => "some other name",
            ),
            "arr3" => array(
                'Name' => "some other name",
            )
        )
    ),
    array(
        array(
            "arr1" => array(
                'Name' => "some name associated with 100",
                'availability' => true,
                'amount' => 100
            ),
            "arr2" => array(
                'Name' => "some other name",
            ),
            "arr3" => array(
                'Name' => "some other name",
            )
        )
    )
),
"departures" => array(
    //..same as above arrays..
),
"arrivals" => array(
    // ..same as above arrays..
),
//..more arrays
);
?>
I am trying to sort it by the amount key value (From Smallest to Largest) so that I can have a result like this:
$array = array(
    "categories" => array(
        array(
            array(
                "arr1" => array(
                    'Name' => "some name associated with 59",
                    'availability' => true,
                    'amount' => 59
                ),
                "arr2" => array(
                    'Name' => "some other name",
                ),
                "arr3" => array(
                    'Name' => "some other name",
                )
            )
        ),
        array(
            array(
                "arr1" => array(
                    'Name' => "some name associated with 100",
                    'availability' => true,
                    'amount' => 100
                ),
                "arr2" => array(
                    'Name' => "some other name",
                ),
                "arr3" => array(
                    'Name' => "some other name",
                )
            )
        ),
        array(
            array(
                "arr1" => array(
                    'Name' => "some name associated with 300",
                    'availability' => true,
                    'amount' => 300
                ),
                "arr2" => array(
                    'Name' => "some other name",
                ),
                "arr3" => array(
                    'Name' => "some other name",
                )
            )
        )
    ),
    "departures" => array(
    //..same as above arrays..
    ),
    "arrivals" => array(
    //..same as above arrays..
    ),
);
I have tried to iterate through the arrays and create a new one but I am repeatedly getting stuck.. unless there's a completely different way to do this. Can you please help me out?.. This is what I have tried so far:
$ordered_arr = array(
    "departures" => array(),
    "arrivals" => array(),
    "categories" => array()
);
foreach ($array as $key => $arrOpts) {
    $new_key = "";
    foreach ($arrOpts as $arrVals) {    
        if (empty($ordered_arr[$key])) {
            array_push($ordered_arr[$key], $arrVals);
        } else {
            var_dump();
            /// this is where im stuck
        }
    }
}
 
    