我有一个多维关联数组:
[book]=>{
[names]=>{
[name]=>'thing1',
[age]=>'23',
[nOrder]=>'1'
},
{
[name]=>'thing2',
[age]=>'24',
[nOrder]=>'3'
},
{
[name]=>'thing3',
[age]=>'25',
[nOrder]=>'2'
}
}
希望示例看起来没问题,基本上我需要按“nOrder”值中的任何内容重新排序“names”值中行的位置,使其顺序为1到3。
答案 0 :(得分:2)
function cmp( $a, $b ) {
return $a['nOrder'] > $b['nOrder'] ? 1 : -1;
}
usort( $book['names'], 'cmp' );
此函数将使用用户提供的比较函数按其值对数组进行排序。如果要排序的数组需要按一些非平凡的标准排序,则应使用此功能。
我们将cmp
作为比较函数传递给usort()
,它将使用该比较函数对$book['names']
数组的元素进行排序。