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
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:
阅读手册: