2011-05-18 131 views
1

我有一个基本阵列将参数传递给array_multi_sort?

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

} 

但我不知道我该如何返回这样的东西?

+0

对不起,你能澄清你的问题吗? – deceze 2011-05-18 09:43:49

+0

是的,我已经更新了这些问题。 – newbie 2011-05-18 09:47:53

+0

如果您在函数中调用,请确保$ A1,$ A4等在该函数范围内 – 2011-05-18 09:58:06

回答

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中的示例,并尝试使其在函数之外工作。祝你好运! :)