📜  php 按子数组值排序数组 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:24.055000             🧑  作者: Mango

PHP 按子数组值排序数组

在 PHP 中,可以使用 array_multisort() 函数来对数组中的子数组按照指定的值进行排序。这对于需要按照特定条件对数组进行排序的情况非常有用。在本文中,我们将学习如何使用 array_multisort() 函数对数组进行排序。

函数语法

array_multisort(array1, array2, ..., sort_order, sort_type)

参数
  • array1, array2, ...: 要排序的数组,可以是一个或多个数组。
  • sort_order: 可选参数,指定排序的顺序,默认为 SORT_ASC 升序排序,可以使用 SORT_DESC 进行降序排序。
  • sort_type: 可选参数,指定排序的类型。可以是以下值之一:SORT_REGULARSORT_NUMERICSORT_STRINGSORT_LOCALE_STRINGSORT_NATURALSORT_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 数组按子数组值进行排序的方法。你可以根据自己的需要调整示例中的代码,并使用不同的排序类型和顺序来满足特定的排序需求。