传递参数到array_multi_sort?

时间:2011-05-18 09:34:35

标签: php sorting multidimensional-array

我有一个基本数组

$base =array(
            "A1" =array();
            "A2" =array();
            "A3" =array();
            "A4" =array();
    );

和条件数组将用于排序

$condition  = array("A1" => "SORT_ASC",
                    "A4" => 'SORT_ASC',
                    "A3" => 'SORT_DESC'
                   );

我尝试创建一个这样的函数来返回一个array_multi_sort

function sort_by_condition($condition) {


    return  array_multisort(
           $base['A1'], SORT_ASC, SORT_STRING,
           $base['A4'], SORT_ASC,SORT_NUMERIC, 
           $base['A3'], SORT_DESC,SORT_NUMERIC,
           $base['A2'],//default
           );

}

但我不知道怎样才能归还这样的东西?

1 个答案:

答案 0 :(得分:1)

您可能需要为数组multisort提供正确的数组键:

$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );

array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);

这是来自手册,但我认为你的例子会更像这样:

 array_multisort( $base['A1'], SORT_ASC, SORT_STRING,
                  $base['A2'], SORT_ASC, SORT_NUMERIC, 
                  etc...
                );

我意识到你可能已经阅读了几次但是看到manual中的示例并尝试首先在函数之外使用它。祝好运! :)