需要您的专业帮助。我有这样的数组:
array(
array('id'=>1, 'name'=>'b'),
array('id'=>2, 'name'=>'a'),
array('id'=>3, 'name'=>'c'));
需要按 排序name
,但是当我使用ksort()
or时asort()
,数组按id
.
我试过使用array_multisort()
,但这个功能对我没有帮助。
需要您的专业帮助。我有这样的数组:
array(
array('id'=>1, 'name'=>'b'),
array('id'=>2, 'name'=>'a'),
array('id'=>3, 'name'=>'c'));
需要按 排序name
,但是当我使用ksort()
or时asort()
,数组按id
.
我试过使用array_multisort()
,但这个功能对我没有帮助。
我们可以使用这个功能:
<?php
$hold = array(
array('id'=>1, 'name'=>'b'),
array('id'=>2, 'name'=>'a'),
array('id'=>3, 'name'=>'c'));
//array before sorting
var_dump($hold);
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
aasort($hold,"name");
//array after sorting
var_dump($hold);
?>
$ar = array(
array('id'=>1, 'name'=>'b'),
array('id'=>2, 'name'=>'a')
);
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
首先定义你的数组,然后对它们进行排序,这将使生活更轻松。
您可以将名称指定为键,然后进行排序。
$array = array(array('id'=>1, 'name'=>'b'), array('id'=>2, 'name'=>'a'), array('id'=>3), 'name'=>'c')
$newarray = array();
foreach ($array as $key => $item) {
$newarray[$item['name']] = $item;
}
ksort($newarray);