PHP 使用子数组值按字母顺序排序数组

可能的复制品:
如何在 PHP 中对数组和数据进行排序?
如何在 php 中对多维数组进行排序
按子数组值排序数组
PHP 按值 对多维数组进行排序

我的数组是这样的:

Array(
[0] => Array(
[name] => Bill
[age] => 15
),
[1] => Array(
[name] => Nina
[age] => 21
),
[2] => Array(
[name] => Peter
[age] => 17
)
);

我想根据他们的名字按字母顺序排序。 我看过 按子数组值排序数组,但没什么帮助。 有什么办法吗?

85529 次浏览

usort是你的朋友:

function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}


usort($array, "cmp");

这是你的答案,百分之百有效,我已经测试过了。

<?php
$a = Array(
1 => Array(
'name' => 'Peter',
'age' => 17
),
0 => Array(
'name' => 'Nina',
'age' => 21
),
2 => Array(
'name' => 'Bill',
'age' => 15
),
);
function compareByName($a, $b) {
return strcmp($a["name"], $b["name"]);
}
usort($a, 'compareByName');
/* The next line is used for debugging, comment or delete it after testing */
print_r($a);