2013-11-05 112 views
1

我有以下格式的關聯數組:PHP排序assosiative陣列的關鍵

如何通過「c_name」升序排列

Array 
(
    [country_detials] => Array 
     (
      [0] => Array 
       (
        [c_id] => AD 
        [c_name] => Andorra    
       ) 

      [1] => Array 
       (
        [c_id] => AE 
        [c_name] => United Arab Emirates 
       ) 
    ) 

) 
+0

看一看函數[在array_multisort()](http://php.net/manual/de/function.array-multisort.php) – TiMESPLiNTER

回答

2

使用自定義比較功能。這很容易做到。試試這個:

function sortingFun($item1,$item2) 
{ 
    if ($item1['c_id'] == $item2['c_id']) return 0; 
    return ($item1['c_id'] < $item2['c_id']) ? 1 : -1; 
} 
usort($yourarray,'sortingFun'); 
print_r($yourarray); 
+1

謝謝,它的做工精細 – user2629419

+0

我的榮幸。 @ \t user2629419 –

1

可以使用uasort排序,並建立一個比較功能如你所願, 我爲你做了,你應該調整比較功能,只要你喜歡。

$array = array(
    array(
     'c_id' =>'AD', 
     'c_name' =>'Andorra', 
    ), 
    array(
     'c_id' =>'AE', 
     'c_name' =>'United Arab Emirates', 
    ), 
) 


// Comparison function 
function cmp($a, $b) { 
    if (strcmp ($a['c_name'],$b['c_name'])) { 
     return 1; 
    } 

} 



// Sort and print the resulting array 
uasort($array, 'cmp');