C3rd
Sorting Multi-Dimensional Array
Posted: 10 Mar 2013, 5:57am - SundayI 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... :)