比如
$families = array
(
"Griffin"=>array
(
"Peter"=>50
),
"Brown"=>array
(
"Cleveland"=>30
)
);
正序排,排完序后的键名和对应的键值不变,形如下面的形式:
$families = array
(
"Brown"=>array
(
"Cleveland"=>30
),
"Griffin"=>array
(
"Peter"=>50
)
);
$families = array
(
"Griffin"=>array
(
"Peter"=>50
),
"Brown"=>array
(
"Cleveland"=>30
)
);
正序排,排完序后的键名和对应的键值不变,形如下面的形式:
$families = array
(
"Brown"=>array
(
"Cleveland"=>30
),
"Griffin"=>array
(
"Peter"=>50
)
);
$families = array(
"Griffin" => array(
"Peter"=>50
),
"Brown"=>array(
"Cleveland"=>30
),
);ksort($families);
print_r($families);Array
(
[Brown] => Array
(
[Cleveland] => 30
) [Griffin] => Array
(
[Peter] => 50
))
此处要求是用键值对数组排序。例如:
$families2 = array
(
"Griffin"=>array
(
"Peter"=>50 )
,
"Krown"=>array
(
"Cleveland"=>30
),
"Brown"=>array
(
"Cleveland"=>10
),
);
如果用ksort()的话,就不对了,出来的结果是
Array
(
[Brown] => Array
(
[Cleveland] => 10
) [Griffin] => Array
(
[Peter] => 50
) [Krown] => Array
(
[Cleveland] => 30
))
没有正序排
ksort() 函数按照键名对数组排序,为数组值保留原来的键。
而此处是要求对键值进行排序。用ksort达不到要求的,例如
$families2 = array
(
"Griffin"=>array
(
"Peter"=>50 )
,
"Krown"=>array
(
"Cleveland"=>30
),
"Brown"=>array
(
"Cleveland"=>10
),
);用ksot排序后如下:
Array
(
[Brown] => Array
(
[Cleveland] => 10
) [Griffin] => Array
(
[Peter] => 50
) [Krown] => Array
(
[Cleveland] => 30
))
没有达到排序要求
foreach($v as $vl) $p[]=$vl;
array_multisort($p,SORT_ASC,$families);
print_r($families);