Reputation: 880
How can I sort an array without the MYSQL order?
I have a key value called sort this is 1,2,3,0 etc. The array that I print is OK but I need to sort this array from low to high based on the sort value. How can I do this?
foreach($res as $key=>$value){
$res[$key]['subaddonsname'] = $this->getValue("addonsname",$CFG['table']['addons'],"id = '".$res[$key]['menuaddons_addonsname']."' ");
$newArr[$key]['subaddonsort'] = $this->getValue("addonsort",$CFG['table']['addons'],"id = '".$res[$key]['menuaddons_addonsname']."' ");
}
echo "<pre>";print_r($res);echo "</pre>";exit();
this results
Array
(
[0] => Array
(
[menuaddons_id] => 4667
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 837
[menuaddons_priceoption] => Free
[menuaddons_price] => 0.00
[subaddonsname] => Visfilet
[subaddonsort] => 7
)
[1] => Array
(
[menuaddons_id] => 4668
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 835
[menuaddons_priceoption] => Free
[menuaddons_price] => 0.00
[subaddonsname] => Tofu
[subaddonsort] => 6
)
[2] => Array
(
[menuaddons_id] => 4669
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 836
[menuaddons_priceoption] => Free
[menuaddons_price] => 0.00
[subaddonsname] => Omelet
[subaddonsort] => 5
)
[3] => Array
(
[menuaddons_id] => 4670
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 841
[menuaddons_priceoption] => Paid
[menuaddons_price] => 1.95
[subaddonsname] => Lamsvlees
[subaddonsort] => 4
)
[4] => Array
(
[menuaddons_id] => 4671
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 838
[menuaddons_priceoption] => Paid
[menuaddons_price] => 0.45
[subaddonsname] => Kipfilet
[subaddonsort] => 3
)
[5] => Array
(
[menuaddons_id] => 4672
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 839
[menuaddons_priceoption] => Paid
[menuaddons_price] => 1.35
[subaddonsname] => Garnalen
[subaddonsort] => 2
)
[6] => Array
(
[menuaddons_id] => 4673
[addonparentid] => 834
[menuaddons_restaurantid] => 29
[menuaddons_menuid] => 8137
[menuaddons_addonsname] => 840
[menuaddons_priceoption] => Paid
[menuaddons_price] => 1.35
[subaddonsname] => Biefstuk
[subaddonsort] => 1
)
)
Upvotes: 0
Views: 66
Reputation: 3414
You could also do it like this
usort($res, function($a, $b) {
if ($a['subaddonsort'] == $b['subaddonsort']) return 0;
return $a['subaddonsort'] < $b['subaddonsort'] ? -1 : 1;
});
Upvotes: 1
Reputation: 28154
PHP's sort functionality pretty much caters for all occasions.
Given the details of your question and PHP documentation, it seems you need to use asort()
function:
asort($res);
die('<pre>' . print_r($res, true) . '</pre>');
Upvotes: 0