2012-01-02 29 views
1

如果我有一個陣列獲取數組php中的密鑰,然後用鍵排序數組?

Array 
(
[3] => Array 
    (
     [0] => title = title dffgfghfdg 
     [1] => 2-title2 
     [2] => content = content 2 
    ) 

[1] => Array 
    (
     [0] => title = title erer 
     [1] => 1-title1 
     [2] => content = content 1 
    ) 

[0] => Array 
    (
     [0] => title = title sdfdf 
     [1] => 4-title4 
     [2] => content = content 4 
    ) 

[2] => Array 
    (
     [0] => title = titledfdf df 
     [1] => 3-title3 
     [2] => content = content 3 
    ) 
) 

,我將盡[1]是關鍵。因爲我會在[1]中對數組進行排序..?

可能會

Array 
(
[2-title2] => Array 
    (
     [0] => title = title dffgfghfdg 
     [1] => 2-title2 
     [2] => content = content 2 
    ) 

[1-title1] => Array 
    (
     [0] => title = title erer 
     [1] => 1-title1 
     [2] => content = content 1 
    ) 

[4-title4] => Array 
    (
     [0] => title = title sdfdf 
     [1] => 4-title4 
     [2] => content = content 4 
    ) 

[3-title3] => Array 
    (
     [0] => title = titledfdf df 
     [1] => 3-title3 
     [2] => content = content 3 
    ) 
) 

的話,我會用鑰匙排序? 謝謝

+0

你的問題有點不清楚。你在問如何用非整數鍵對數組進行排序? – Will 2012-01-02 02:22:02

回答

3

使用foreach()來轉換數組,然後使用kso​​rt()。

foreach($a as $k => $v) { 
    $b[$v[1]] = $v; 
} 
ksort($b); 

就是這樣的。

+0

謝謝亞歷克西斯,它工作得很好! 我很開心... – 2012-01-02 03:45:38

3

爲此使用usorthttp://php.net/manual/en/function.usort.php

function user_cmp($a, $b) 
{ 
    if($a[1] == $b[1]) return 0; 
    return ($a[1] < $b[1]) ? -1 : 1; 
} 

$arr = array(...); 
usort($arr, 'user_cmp'); 
+0

+1,但我簡化user_cmp只是'返回strcmp($ a [1],$ b [1]);'。 – cmbuckley 2012-01-02 16:25:37