2012-07-02 53 views
-1

可能重复:
php sort array by sub-value如何使用内部数组键对多维数组进行排序?

我有一个多维数组类似如下:

Array => (
    [0] => Array(
     [a] => abcd, 
     [b] => 22 
    ), 
    [1] => Array(
     [a] => defg, 
     [b] => 12 
    ), 
    ..... 
) 

我想排序这个数组由索引b在价值内部阵列。如果我想降序排序,那么示例现在可以。但如果我想以升序方式排序,预期输出将为:

Array => (
    [0] => Array(
     [a] => defg, 
     [b] => 12 
    ), 
    [1] => Array(
     [a] => abcd, 
     [b] => 22 
    ), 
    ..... 
) 

谢谢!

回答

0

你可以试试这个功能:

bool uasort (array &$array , callback $cmp_function) 

这里是我的代码:

$arr = array(
    0 => array('a' => 'abcd','b' => 22), 
     1 => array('a' => 'defg','b' => 12), 
    2 => array('a' => 'dfdf','b' => 32) 
); 

uasort($arr,'mul_sort'); 

function mul_sort($a,$b) 
{ 
    if($a['b'] > $b['b']) 

     return 1;//here,if you return -1,return 1 below,the result will be descending 

    if($a['b'] < $b['b']) 

     return -1; 

    if($a['b'] == $b['b']) 

     return 0; 
} 

print_r($arr); 
output: 
---------- PHP ---------- 
Array 
(
    [1] => Array 
     (
      [a] => defg 
      [b] => 12 
     ) 

    [0] => Array 
     (
      [a] => abcd 
      [b] => 22 
     ) 

    [2] => Array 
     (
      [a] => dfdf 
      [b] => 32 
     ) 

) 
+0

欢迎SO!如果你想格式化你的代码,你可以使用4个空格或者用''包装你的行 – j0k

相关问题