在 PHP 中,您可以使用内置函数 sort()
或 asort()
对多维数组进行排序。下面我们分别对这些函数进行介绍:
sort()函数:
sort() 函数将数组的值进行按位排序。这是最常用的一个函数,但它的默认方式只能对单个数据元素进行排序。如果要排序的多维数组没有键值对的属性,可以使用 asort()
函数。
示例:
$arr = [
[1, 'a', 4],
[2, 'z', 6],
[3, 'b', 3]
];
// 使用 sort() 函数
sort($arr);
// 输出结果
foreach ($arr as $value) {
echo $value[1] . ' ' . $value[2] . ' ' . $value[0] . PHP_EOL;
}
asort() 函数:
asort() 函数按照升序的键值对方式对多维数组进行排序。它会返回处理后(排好序)的数组,同时修改原始数组。请注意,此函数会修改输入数组的内容,而不是返回一个新数组。
示例:
$arr = [
[1, 'a', 4],
[2, 'z', 6],
[3, 'b', 3]
];
// 使用 asort() 函数
asort($arr);
// 输出结果
foreach ($arr as $value) {
echo $value[1] . ' ' . $value[2] . ' ' . $value[0] . PHP_EOL;
}
多维度排序:
如果您想要更全面地排序您的多维数组,请使用 uasort() 函数。uasort() 函数是一种数组排序方法,可以对给定数组按照规则进行排序。
以下是一些 uasort() 函数的示例用法:
$arr = [
[1, 'a', 4],
[2, 'z', 6],
[3, 'b', 3]
];
// 默认规则
uasort($arr, function($a, $b) {
$valueA = json_decode($a[2], true);
$valueB = json_decode($b[2], true);
return $valueA <=> $valueB;
});
// 或者按特定值排序
uasort($arr, function($a, $b) {
$valueA = json_decode($a[1], true);
$valueB = json_decode($b[1], true);
return $valueA <=> $valueB;
});
// 以特定的键值对来排序
uasort($arr, function($a, $b) {
return $a[2] <=> $b[2];
});
// 以键名排序
uasort($arr, function($a, $b) {
return strcasecmp($a[0], $b[0]);
});
// 以特定字段排序
uasort($arr, function($a, $b) {
return $a[1] <=> $b[1];
});
// 输出结果
foreach ($arr as $value) {
echo $value[1] . ' ' . $value[2] . ' ' . $value[0] . PHP_EOL;
}
领取专属 10元无门槛券
手把手带您无忧上云