2015-04-07 93 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');