Sort Multi Dimensional Array in PHP
09-06-2022
You may already know how to sort an array in PHP using various array sorting functions like sort, asort, ksort, arsort, krsort.
Here we discuss how to sort a multi dimensional array in PHP.
Sorting Multi Dimensional Array in PHP by Key-Value
I have created a function like following to sort multi dimensional array in PHP using a specific key-value.
//Products Array
$products = [
[
'id' => 1,
'title' => 'Laptop',
'stock' => 12,
],[
'id' => 2,
'title' => 'Mobile',
'stock' => 30,
],[
'id' => 3,
'title' => 'USB Cable',
'stock' => 5,
],[
'id' => 4,
'title' => 'Power Bank',
'stock' => 53,
],[
'id' => 5,
'title' => 'Mobile Charger',
'stock' => 28,
],
];
//Sort array by stock in descending order
$sorted_products = sort_array_by_key($products, 'stock');
print_r($sorted_products);
//Function to sort array by key
function sort_array_by_key($array, $sort_key){
$key_array = array_column($array, $sort_key);
array_multisort($key_array, SORT_DESC, $array); //or SORT_ASC
return $array;
}
Output
/**
OUTPUT
*/
Array
(
[0] => Array
(
[id] => 4
[title] => Power Bank
[stock] => 53
)
[1] => Array
(
[id] => 2
[title] => Mobile
[stock] => 30
)
[2] => Array
(
[id] => 5
[title] => Mobile Charger
[stock] => 28
)
[3] => Array
(
[id] => 1
[title] => Laptop
[stock] => 12
)
[4] => Array
(
[id] => 3
[title] => USB Cable
[stock] => 5
)
)