2015-04-07 107 views
0
$arr['a']['studentname'] = "john"; 

$arr['b']['studentname'] = "stefen"; 

$arr['c']['studentname'] = "alex"; 

陣列是否可以使用用戶定義的函數來進行排序:如何排序基於值

usort($arr) 


uasort($arr) 


uksort($arr) 

因此基於值我需要傳遞,數組的排序方式! 預期輸出:

如果電流值,那麼

Array 
(
    [c] => Array 
     (
      [studentname] => alex 

     ) 

    [a] => Array 
     (
      [studentname] => john 

     ) 

    [b] => Array 
     (
      [studentname] => stefen 

     ) 

) 

如果電流值,那麼

Array 
    (

[b] => Array 
      (
       [studentname] => stefen 

      ) 
[a] => Array 
      (
       [studentname] => john 

      ) 
     [c] => Array 
      (
       [studentname] => alex 

      ) 

    ) 

在此先感謝

+0

您可以與其他例如編輯,我可以得到你在做什麼 –

+0

john你能顯示你的代碼嗎? –

回答

1

如果我理解的問題,你可以使用一個簡單的字符串com削減回調:

$arr['a']['studentname'] = "john"; 
$arr['b']['studentname'] = "stefen"; 
$arr['c']['studentname'] = "alex"; 

// A-Z 
uasort($arr, function($a, $b) { 
    return strcmp($a['studentname'], $b['studentname']); 
}); 

print_r($arr); 

// Z-A 
uasort($arr, function($a, $b) { 
    return strcmp($b['studentname'], $a['studentname']); 
}); 

print_r($arr); 
0

試試這個:
對於PHP版本> 5.3:

$arr['a']['studentname'] = "john"; 
$arr['b']['studentname'] = "stefen"; 
$arr['c']['studentname'] = "alex"; 

uasort($arr, function($a, $b) { 
    return strcmp($a['studentname'], $b['studentname']); 
}); 

對於PHP版本< 5.3:

$arr['a']['studentname'] = "john"; 
$arr['b']['studentname'] = "stefen"; 
$arr['c']['studentname'] = "alex"; 

function sort_by($a, $b) { 
    return strcmp($a['studentname'], $b['studentname']); 
} 

uasort($arr, 'sort_by');