按字母顺序排列数组的值[复制]

时间:2021-06-01 00:43:09

Possible Duplicate:
How do I sort a multidimensional array in php

可能的重复:如何在php中排序多维数组

I have value array and want to sort the value based on alphabetical order

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

my current array

我现在的数组

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

so the result I looking is after sort the array as shown below

所以我要查找的结果是排序数组,如下所示

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

3 个解决方案

#1


5  

This is the type of thing that usort() is used for:

这是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);

#2


0  

You can try following way.

你可以试着照做。

$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);

Prasad.

普拉萨德。

#3


0  

It is very easy, just do it like this:

这很简单,就这样做:

$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'] );
} );

and you will get what you need! If your php version is 5.2.x or less, do it in this way:

你会得到你需要的!如果您的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' );

Read manual for following functions:

阅读手册:

  1. usort function
  2. 函数的作用
  3. strcmp function
  4. 比较字符串函数

#1


5  

This is the type of thing that usort() is used for:

这是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);

#2


0  

You can try following way.

你可以试着照做。

$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);

Prasad.

普拉萨德。

#3


0  

It is very easy, just do it like this:

这很简单,就这样做:

$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'] );
} );

and you will get what you need! If your php version is 5.2.x or less, do it in this way:

你会得到你需要的!如果您的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' );

Read manual for following functions:

阅读手册:

  1. usort function
  2. 函数的作用
  3. strcmp function
  4. 比较字符串函数