我有值数组,想要根据字母顺序对值进行排序
我当前的数组
$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)
);
答案 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' );
阅读以下功能手册: