2011-05-18 136 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中的示例,並嘗試使其在函數之外工作。祝你好運! :)