I have an array as following and I want to order that array by the value of the key “attack”. First keys of the arrays (15, 13, 18) are ID of some certain item from database, so I don’t want these keys to be changed when the array is sorted. Any help would be greatly appreciated.
This is the array:
$data = array(
'15' => array(
'attack' => '45', 'defence' => '15', 'total' => '10'
),
'13' => array(
'attack' => '25', 'defence' => '15', 'total' => '10'
),
'18' => array(
'attack' => '35', 'defence' => '15', 'total' => '10'
)
);
Use
uasort():Example:
If the values are always strings, you can also use
strcmp()in thecmp()function:Update:
To sort in descending order you just have to change the return values:
or to pick up @salathe’s proposal: