2013-01-02 76 views
0

就像標題sais一樣,我不知道從哪裏開始,使用asort()和sort()不會以我認爲的方式提供幫助。基本上我有一個數組這樣:對數組的多分區關聯數組進行排序

$array = array(
    'array_c' => array(
     'array_b' => (
      array('object' => 'e some Object'), 
      array('object' => 'b some Object'), 
     ), 
     'array_a' => (
      array('object' => 'awesome Object'), 
     ), 
    ), 
    'array_a' => array(
     'array_e' => (
      array('object' => 'e some Object'), 
     ), 
     'array_a' => (
      array('object' => 'b awesome Object'), 
     ); 
    ); 
); 

所以我在看asort,我想保持協會一樣,我已經開始寫的功能是:

function sort_me(some_array){ 
    $new_array = asort(some_array); 
    return $new_array; 
} 

此功能則需要在$數組[「array_c」],讓你找回一個字母順序排序數組,看起來像:

'array_c' => array(
     'array_a' => (
      array('object' => 'awesome Object'), 
     ), 
     'array_b' => (
      array('object' => 'b some Object'), 
      array('object' => 'e some Object'), 
     ), 

    ), 

可以有一個人告訴我爲什麼我的功能無法正常工作?我誤解了asort的權力嗎?

+0

你想['ksort()'](http://php.net/ksort)如果您希望基於字符串進行排序*鍵* ;-) – DaveRandom

+0

真的嗎?唔好看看kSort()。我不這麼認爲,根據這個,它會對關鍵字進行排序,如果你看看我的最終結果,這個值是按字母順序排列的。我通過密鑰來分類它的價值。由於數組仍然未排序,k排序也不起作用。 – TheWebs

回答

1

ksort是要走的路,但ksort不返回新排序的數組:

http://us.php.net/ksort

它返回一個布爾值 - > true,如果陣列可以進行排序,否則爲false ...

此代碼剪斷應該做你需要的東西:

ksort($array); 
foreach($array as $key=>$value){ 
    ksort(value); 
    $array[$key]=$value; 
} 
print_r($array);