按字母顺序排序数组值

时间:2011-12-21 09:59:59

标签: php arrays multidimensional-array

  

可能重复:
  How do I sort a multidimensional array in php

我有值数组,想要根据字母顺序对值进行排序

我当前的数组

   $original_array = array(
       array('id' => 123456,  'name'=>michael),
       array('id' => 222222,  'name'=>harolds),
       array('id' => 1111111, 'name'=>albert)
   );

所以我看的结果是在对数组进行排序后如下所示

   $original_array = array( 
      array('id' => 1111111, 'name' => albert),
      array('id' => 222222,  'name' => harolds),
      array('id' => 123456,  'name' => michael)
   );

3 个答案:

答案 0 :(得分:5)

这是usort()用于的事物类型:

$original_array = array(array('id'=>123456,'name'=>'michael'),array('id'=>222222,'name'=>'harold'),array('id'=>1111111,'name'=>'albert'));

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

usort ($original_array,'alphasort');
var_dump($original_array);

答案 1 :(得分:1)

您可以尝试以下方式。

$original_array = array(
array('id'=>123456,'name'=>'michael'),
array('id'=>222222,'name'=>'harolds'),
array('id'=>1111111,'name'=>'albert')
);

foreach ($original_array as $key => $row) {
    $volume[$key]  = $row['id'];
    $edition[$key] = $row['name'];
}



array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $original_array);

普拉萨德。

答案 2 :(得分:1)

这很简单,就这样做:

$array = array(
    array( 'id' => 123456,  'name' => michael ),
    array( 'id' => 222222,  'name' => harolds ),
    array( 'id' => 1111111, 'name' => albert )
);

usort( $array, function( $a, $b ) {
    return strcmp( $a['name'], $b['name'] );
} );

你会得到你所需要的!如果您的php版本是5.2.x或更低版本,请以这种方式执行:

$array = array(
    array( 'id' => 123456,  'name' => michael ),
    array( 'id' => 222222,  'name' => harolds ),
    array( 'id' => 1111111, 'name' => albert )
);

function mysort_func_531994( $a, $b ) {
    return strcmp( $a['name'], $b['name'] );
}

usort( $array, 'mysort_func_531994' );

阅读以下功能手册:

  1. usort功能
  2. strcmp功能