2011-08-04 58 views
0

可能重复:
Sorting a multidimensional array in PHP?PHP排序根据子阵列

$songs = array(
    '1' => array('artist'=>'The Smashing Pumpkins', 'songname'=>'Soma'), 
    '2' => array('artist'=>'The Decemberists', 'songname'=>'The Island'), 
    '3' => array('artist'=>'Fleetwood Mac', 'songname' =>'Second-hand News') 
); 

答案应该来是这样的:

Array(
[0] => Array 
    (
     [artist] => Fleetwood Mac 
     [song] => Second-hand News 
    ) 

[1] => Array 
    (
     [artist] => The Decemberists 
     [song] => The Island 
    ) 

[2] => Array 
    (
     [artist] => The Smashing Pumpkins 
     [song] => Cherub Rock 
    ) 
) 

请帮我在这。

回答

1

我知道PHP

试试这个:

function subval_sort($a,$subkey) { 
foreach($a as $k=>$v) { 
    $b[$k] = strtolower($v[$subkey]); 
} 
asort($b); 
foreach($b as $key=>$val) { 
    $c[] = $a[$key]; 
} 
return $c; 
} 

调用

$songs = subval_sort($songs,'artist'); 
print_r($songs); 
+0

“我知道PHP” - http://www.youtube.com/watch?v=EmEPXXJ4sKw ;-) – VolkerK