首先,让我们先了解一下 uasort 函数。uasort 函数是 php 中的一个内置函数,用于对数组进行自定义排序。这个函数和 sort 函数的区别在于,uasort 函数允许我们自定义一个排序函数,在排序时使用这个函数进行排序,而 sort 函数则只能使用默认的排序函数。
下面是一个使用 uasort 函数的示例,演示如何对 PHP 二维数组按照指定键值进行排序:
// 定义需要排序的二维数组
$myArray = [
['name' => 'Lucas', 'age' => 27],
['name' => 'Mike', 'age' => 30],
['name' => 'John', 'age' => 22],
['name' => 'Tom', 'age' => 35],
['name' => 'Katherine', 'age' => 18],
];
// 自定义排序函数,根据年龄进行排序
function mySort($a, $b) {
if ($a['age'] == $b['age']) {
return 0;
}
return ($a['age'] < $b['age']) ? -1 : 1;
}
// 调用 uasort 函数进行排序
uasort($myArray, 'mySort');
// 输出排序结果
print_r($myArray);
上面的代码会输出按年龄从小到大排序后的二维数组:
Array
(
[4] => Array
(
[name] => Katherine
[age] => 18
)
[2] => Array
(
[name] => John
[age] => 22
)
[0] => Array
(
[name] => Lucas
[age] => 27
)
[1] => Array
(
[name] => Mike
[age] => 30
)
[3] => Array
(
[name] => Tom
[age] => 35
)
)
除了按照年龄排序,我们还可以按照其他指定键值对二维数组进行排序。下面是另一个示例,演示如何按照姓名从 A 到 Z 进行排序:
// 定义需要排序的二维数组
$myArray = [
['name' => 'Lucas', 'age' => 27],
['name' => 'Mike', 'age' => 30],
['name' => 'John', 'age' => 22],
['name' => 'Tom', 'age' => 35],
['name' => 'Katherine', 'age' => 18],
];
// 自定义排序函数,根据姓名进行排序
function mySort($a, $b) {
return strcmp($a["name"], $b["name"]);
}
// 调用 uasort 函数进行排序
uasort($myArray, 'mySort');
// 输出排序结果
print_r($myArray);
上面的代码会输出按照姓名从 A 到 Z 排序后的二维数组:
Array
(
[4] => Array
(
[name] => Katherine
[age] => 18
)
[2] => Array
(
[name] => John
[age] => 22
)
[0] => Array
(
[name] => Lucas
[age] => 27
)
[1] => Array
(
[name] => Mike
[age] => 30
)
[3] => Array
(
[name] => Tom
[age] => 35
)
)
这两个示例演示了如何使用 uasort 函数对二维数组按照指定键值进行排序。我们只需要在自定义排序函数中指定排序的键值即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php自定义排序uasort函数示例【二维数组按指定键值排序】 - Python技术站