Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Array-Schlüsselgruppierungsfunktionen und Anwendungshandbuch

PHP-Array-Schlüsselgruppierungsfunktionen und Anwendungshandbuch

WBOY
WBOYOriginal
2024-04-30 10:36:011049Durchsuche

PHP 数组按键分组函数可以按指定规则对数组按键分类,用于数据汇总、过滤和转换。内置函数包括 array_column()、array_combine() 和 array_group_by()。例如,可以按用户 ID 分组订单或按后缀过滤密钥,从而有效组织和处理数组数据。

PHP 数组按键分组的函数和应用指南

PHP 数组按键分组函数和应用指南

数组按键分组是 PHP 中一项强大的功能,它允许您根据自定义规则将数组按键分组。这在许多实际场景中非常有用,例如:

  • 数据汇总: 根据相同密钥将数组中的数据汇总在一起。
  • 数据过滤: 根据条件过滤数组中具有特定密钥的数据。
  • 数据转换: 将数组按键重新分组为其他键值对。

内置分组函数

PHP 提供了以下内置函数来实现数组按键分组:

  • array_column():提取指定列(按键)的数据。
  • array_combine():将两个数组的键值对合并成一个新数组。
  • array_group_by():将数组按给定的键分组(PHP 8.1 引入)。

实战案例

案例 1:按照用户 ID 分组订单

$orders = [
    ['user_id' => 1, 'product_id' => 1, 'quantity' => 2],
    ['user_id' => 1, 'product_id' => 2, 'quantity' => 3],
    ['user_id' => 2, 'product_id' => 3, 'quantity' => 1],
];

$groupedOrders = array_group_by($orders, 'user_id');

执行后,$groupedOrders 将是一个多维数组,其中每个元素都是一个包含相同用户 ID 的订单数组:

[
    1 => [
        ['user_id' => 1, 'product_id' => 1, 'quantity' => 2],
        ['user_id' => 1, 'product_id' => 2, 'quantity' => 3],
    ],
    2 => [
        ['user_id' => 2, 'product_id' => 3, 'quantity' => 1],
    ],
]

案例 2:过滤具有特定后缀的密钥

$settings = [
    'site.title' => 'My Site',
    'site.description' => 'A great website',
    'user.name' => 'John Doe',
];

$filteredSettings = array_filter($settings, function($key) {
    return strpos($key, '.site') !== false;
});

执行后,$filteredSettings 将包含仅带有.site 后缀的密钥的设置:

[
    'site.title' => 'My Site',
    'site.description' => 'A great website',
]

总结

使用数组按键分组函数可以轻松高效地整理和处理数组数据。通过选择正确的函数和应用自定义规则,您可以根据特定的需求灵活地操纵数组。

Das obige ist der detaillierte Inhalt vonPHP-Array-Schlüsselgruppierungsfunktionen und Anwendungshandbuch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn