php二维数组的排序方法(array_multisort模型)
例如,下面的数组:复制代码代码如下所示:
$用户=数组(
阵列('name' =,年龄= 20)
阵列('name' = 'anny时代= 18)
阵列('name' =杰克时代= 22)
);
希望能按年龄从小到大排序。作者收集了两种方法并与大家分享。
1。使用array_multisort
使用这种方法,将年龄提取到一维数组并按年龄顺序排列会更麻烦:
复制代码代码如下所示:
数组();
foreach(合用户的用户名){
{ } =美元美元时代用户{年龄};
}
array_multisort(美元的时代,sort_asc,$用户);
执行后,$用户是一种数组,可以打印出来查看。如果需要按年龄顺序升序排列,然后按照名称按升序排列,同样的方法是提取多个名称数组。
复制代码代码如下所示:
array_multisort(美元时代,美元sort_asc,名字,sort_asc,$用户);
2。使用模型
使用这种方法的最大优点是定制一些更复杂的排序方法:
复制代码代码如下所示:
Usort($用户功能($,$){
合铝= strlen(美元{ 'name' });
$ BL = strlen($ { 'name' });
如果($ = BL)
返回0;
收益(1美元)- 1;
});
这里使用匿名函数,如果需要,可以单独提取,其中$、b可以理解为$用户数组下的一个元素,它可以直接索引name值,并计算长度,然后比较长度。
我喜欢第二种方法,因为将排序内容提取到一维数组的步骤较少,排序方法更灵活。