Sorting Multi-Dimensional Array
Posted: 10 Mar 2013, 5:57am - Sunday

I never tried sorting a an array using the inner array as a key for sorting. In this blog, been searching for the solutions and here it is... Sample Data:

Array
(
    [0] => Array
        (
            [id] => 1
            [user] => c test1
            [data] => Array
                (
                    [a] => 1
                    [b] => 2
                )

        )

    [1] => Array
        (
            [id] => 2
            [user] => b test2
            [data] => Array
                (
                    [a] => 3
                    [b] => 4
                )

        )

    [2] => Array
        (
            [id] => 3
            [user] => a test3
            [data] => Array
                (
                    [a] => 5
                    [b] => 1
                )

        )

)
Sorting Code:
// sort multidimensional array... [start]

$test_data = array(
        array('id' => 1, 'user' => 'c test1', 'data' => array('a' => 1, 'b' => 2)),
        array('id' => 2, 'user' => 'b test2', 'data' => array('a' => 3, 'b' => 4)),
        array('id' => 3, 'user' => 'a test3', 'data' => array('a' => 5, 'b' => 1))
);

// temporary container for sorting...
$sort_data = array();

foreach ($test_data as $key => $row) {
	// sorting by id
	$sort_data[$key] = $row['id'];

	// sorting by user
	$sort_data[$key] = $row['user'];

	// sorting by a in the inner array..
	$sort_data[$key] = $row['data']['a'];

}
// sort as ascending...
array_multisort($sort_data, SORT_ASC, $contract_data);

// sort as descending...
array_multisort($sort_data, SORT_DESC, $contract_data);

// sort multidimensional array... [end]
--- That's it.. It will be handy for those who love playing with arrays... :)