我有一个像这样的数组:
Array
(
[0] => Array
(
[id] => 1
[name] => Mickey
)
[1] => Array
(
[id] => 2
[name] => Donald
)
[2] => Array
(
[id] => 3
[name] => Goofy
)
)
有没有办法按字母顺序排序'name'字段?
答案 0 :(得分:1)
是的,有。使用usort();
的回调方法function my_sorter($a, $b) {
return strcmp($a['name'], $b['name']);
}
usort($list, 'my_sorter');
答案 1 :(得分:0)
您可以使用usort()
http://php.net/manual/en/function.usort.php
答案 2 :(得分:0)
usort工作正常。传递给usort的函数应该是一个比较函数,如果是ab则返回小于1的值,如果是== b则返回0。由于数组的格式如何,比较函数应该比较['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";
}