我有一个像这样的数组:
Array
(
[0] => Array
(
[id] => 1
[name] => Mickey
)
[1] => Array
(
[id] => 2
[name] => Donald
)
[2] => Array
(
[id] => 3
[name] => Goofy
)
)
有没有办法按字母顺序对"名称"字段进行排序?
是的,有。对usort()使用回调方法;
function my_sorter($a, $b) {
return strcmp($a['name'], $b['name']);
}
usort($list, 'my_sorter');
您可以使用usort()
http://php.net/manual/en/function.usort.php
usort运行良好。传递给usort的函数应该是一个比较函数,如果ab,则返回小于1的值,如果a==b,则返回0。由于数组的格式,比较函数应该比较a['name']和b['name']。因此:
function cmp($a, $b)
{
return strcmp($a['name'],$b['name']);
}
$a = array(array("id" => 2, "name" => "Donald"),array("id" => 3, "name" => "Goofy"),array("id" => 4, "name" => "Mickey"));
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: ".$value['name']."'n";
}