Php 按子值按字母顺序对多维数组排序
需要按数组的特定子值进行自然(字母顺序)排序 如果按“用户名”排序=>=>ameyer、bsmith、mjohnsonPhp 按子值按字母顺序对多维数组排序,php,Php,需要按数组的特定子值进行自然(字母顺序)排序 如果按“用户名”排序=>=>ameyer、bsmith、mjohnson $arr=array( [0]=>array( [username]=>bsmith [name]=>Bob Smith ) [1]=>array( [username]=>mjohnson [name]=>Mike Johnson ) [
$arr=array(
[0]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[1]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
[2]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
)
$arr=array(
[0]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
[1]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[2]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
)
如果按“名称”排序=>bsmith、ameyer、mjohnson
$arr=array(
[0]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[1]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
[2]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
)
$arr=array(
[0]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
[1]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[2]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
)
最优雅的方式是什么
我应该使用uasort吗?您需要使用
usort
,这将是最简单、最快的方法。您可以使用strcmp的结果代码来确定alpha排序顺序
$arr=array(
[0]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[1]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
[2]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
)
您需要使用
usort
,这将是最简单和最快的方法。您可以使用strcmp的结果代码来确定alpha排序顺序
$arr=array(
[0]=>array(
[username]=>bsmith
[name]=>Bob Smith
)
[1]=>array(
[username]=>ameyer
[name]=>Meyer Adam
)
[2]=>array(
[username]=>mjohnson
[name]=>Mike Johnson
)
)
您可以使用:
您可以使用:
uasort工作方式的可能重复?在这种特殊情况下,$a和$b是什么?
uasort
调用sortByUsername
,并对这两个元素进行比较。也就是说,我更喜欢JimiDini的解决方案,它更灵活,不需要使用uasort。usort就足够了,因为顶级数组不是关联的。另请参见我的通用答案solution@ihtusphp引擎将从您的数组中发送多对不同的元素,直到它获得足够的信息,知道排序后的数组应该是什么样子为止—第一次发送0和1对;那么公元1年和公元2年,uasort是如何工作的?在这种特殊情况下,$a和$b是什么?uasort
调用sortByUsername
,并对这两个元素进行比较。也就是说,我更喜欢JimiDini的解决方案,它更灵活,不需要使用uasort。usort就足够了,因为顶级数组不是关联的。另请参见我的通用答案solution@ihtusphp引擎将从您的数组中发送多对不同的元素,直到它获得足够的信息,知道排序后的数组应该是什么样子为止—第一次发送0和1对;那么公元1年到2年?