ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列キーのグループ化関数とアプリケーション ガイド

PHP 配列キーのグループ化関数とアプリケーション ガイド

WBOY
WBOYオリジナル
2024-04-30 10:36:011049ブラウズ

PHP の配列キー グループ化関数は、データの集約、フィルタリング、変換の指定されたルールに従って配列キーを分類できます。組み込み関数には、array_column()、array_combine()、および array_group_by() が含まれます。たとえば、ユーザー ID で注文をグループ化したり、サフィックスでキーをフィルタリングしたりすることで、配列データを効率的に整理して処理できます。

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

PHP 配列キー グループ化関数とアプリケーション ガイド

配列キー グループ化は、カスタム ルールに従って配列をグループ化できる PHP の強力な機能です。ボタンのグループ化。これは、次のような多くの現実のシナリオで役立ちます。

  • データ集約: 同じキーに基づいて配列内のデータをまとめます。
  • データ フィルタリング: 条件に基づいて、配列内の特定のキーを使用してデータをフィルタリングします。
  • データ変換: 配列キーを他のキーと値のペアに再グループ化します。

#組み込みグループ化関数

PHP には、配列キーのグループ化を実装するための次の組み込み関数が用意されています。

  • array_column(): 指定した列のデータを抽出します(キーによる)。
  • array_combine(): 2 つの配列のキーと値のペアを新しい配列に結合します。
  • 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 will は多次元配列で、各要素は同じユーザー 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',
]

summary

配列キー グループ化関数を使用すると、配列データを次のことができます。簡単かつ効率的に整理および処理できます。適切な関数を選択し、カスタム ルールを適用することで、特定のニーズに応じて配列を柔軟に操作できます。

以上がPHP 配列キーのグループ化関数とアプリケーション ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。