没有mysql按键值排序数组

时间:2014-04-20 21:48:08

标签: php arrays sorting

如何在没有MYSQL订单的情况下对数组进行排序?

我有一个名为sort的键值,这是1,2,3,0等。我打印的数组没问题,但我需要根据排序值将此数组从低到高排序。我怎么能这样做?

    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();

此结果

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
        )

)

2 个答案:

答案 0 :(得分:1)

您也可以这样做

usort($res, function($a, $b) {
    if ($a['subaddonsort'] == $b['subaddonsort']) return 0;
    return $a['subaddonsort'] < $b['subaddonsort'] ? -1 : 1;
});

答案 1 :(得分:0)

PHP的sort functionality非常适合所有场合。

鉴于您的问题和PHP文档的详细信息,您似乎需要使用asort()函数:

asort($res);

die('<pre>' . print_r($res, true) . '</pre>');