Php 按值按字母顺序对多维数组排序,并将其存储在新变量中
我有以下数组,我想按值A到Z排序,并存储在一个新的araryPhp 按值按字母顺序对多维数组排序,并将其存储在新变量中,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我有以下数组,我想按值A到Z排序,并存储在一个新的arary$atoz_people: $people = ( [0] => Array ( [id] => 1 [name] => Ken ) [1] => Array ( [id] => 2 [name] => Anne ) [2] => Array ( [id] =>
$atoz_people
:
$people = (
[0] => Array
(
[id] => 1
[name] => Ken
)
[1] => Array
(
[id] => 2
[name] => Anne
)
[2] => Array
(
[id] => 3
[name] => Bob
)
);
$atoz_people = $people;
asort($atoz_people);
print_r($atoz_people);
我使用了“经典”asort($people)
:
不幸的是,它不起作用。为了获得下面的阵列,我应该更改什么?有可能吗
$atoz_people = (
[1] => Array
(
[id] => 2
[name] => Anne
)
[2] => Array
(
[id] => 3
[name] => Bob
)
[0] => Array
(
[id] => 1
[name] => Ken
)
);
对于多维,您可以使用
usort
或uasort
uasort($people,"sort_name");
var_dump($people);
function sort_name($a,$b)
{
return $a["name"] > $b["name"];
}
检查
或
1)将初始数组存储在新变量中:
$atoz_people = $people;
2) 创建排序功能:
function sort_by_name($a,$b)
{
return $a["name"] > $b["name"];
}
3) 排序数组
uasort($atoz_people,"sort_by_name");
print_r_html($atoz_people);
@德赛:非常感谢 可能的重复首先你必须定义问题。你怎么知道“它不起作用”?预期产量是多少?为什么这是预期的输出而不是现在的输出?它不起作用,因为它是一个多维数组。asort用于普通阵列。您需要usort。的文档中描述了您的确切问题的解决方案。我将回到创建此数组的代码。我猜它从数据库中获取数据。处理该代码并使其返回一个将ID与名称关联的一级数组。然后,排序变得很简单(并且
asort()
按预期工作)。