📅  最后修改于: 2023-12-03 14:45:24.055000             🧑  作者: Mango
在 PHP 中,可以使用 array_multisort()
函数来对数组中的子数组按照指定的值进行排序。这对于需要按照特定条件对数组进行排序的情况非常有用。在本文中,我们将学习如何使用 array_multisort()
函数对数组进行排序。
array_multisort(array1, array2, ..., sort_order, sort_type)
array1, array2, ...
: 要排序的数组,可以是一个或多个数组。sort_order
: 可选参数,指定排序的顺序,默认为 SORT_ASC
升序排序,可以使用 SORT_DESC
进行降序排序。sort_type
: 可选参数,指定排序的类型。可以是以下值之一:SORT_REGULAR
、SORT_NUMERIC
、SORT_STRING
、SORT_LOCALE_STRING
、SORT_NATURAL
、SORT_FLAG_CASE
。如果成功执行排序,则返回 true
,否则返回 false
。
以下是一个示例,演示如何使用 array_multisort()
函数对数组进行排序。
$fruits = array(
array("name" => "Apple", "quantity" => 10),
array("name" => "Orange", "quantity" => 5),
array("name" => "Banana", "quantity" => 20)
);
// 按照 quantity 降序排序
$quantities = array_column($fruits, "quantity");
array_multisort($quantities, SORT_DESC, $fruits);
// 输出排序后的数组
foreach ($fruits as $fruit) {
echo $fruit["name"] . " - " . $fruit["quantity"] . "\n";
}
输出结果为:
Banana - 20
Apple - 10
Orange - 5
在上面的示例中,我们有一个包含水果名称和数量的数组。我们使用 array_column()
函数从数组中提取 quantity
值,并将其保存到一个新的数组 $quantities
中。然后,我们使用 array_multisort()
函数对 $quantities
数组进行降序排序,并使用排序后的 $quantities
数组对原始水果数组 $fruits
进行重新排序。
以上是使用 array_multisort()
函数对 PHP 数组按子数组值进行排序的方法。你可以根据自己的需要调整示例中的代码,并使用不同的排序类型和顺序来满足特定的排序需求。