ホームページ > バックエンド開発 > PHPチュートリアル > 列の値に基づいて要素をグループ化して 2D 配列を 3D 配列に変換するにはどうすればよいですか?

列の値に基づいて要素をグループ化して 2D 配列を 3D 配列に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-28 20:05:31
オリジナル
1075 人が閲覧しました

How to Transform a 2D Array into a 3D Array by Grouping Elements Based on a Column Value?

列の値に基づいて 2D 配列データをグループ化して 3D 配列を作成する

プログラミングでは、データを多次元配列に整理する必要が生じる場合があります。複雑なデータを効率的に管理するには、特定の基準に従って要素をグループ化することが不可欠になります。この記事では、特定の列の値で 2D 配列をグループ化し、視覚化と操作を強化するために 3D 配列に変換するという具体的な課題に取り組みます。

顧客情報を含む次の多次元配列を考えてみましょう:

<code class="php">$data = [
    ['cust' => 'XT8900', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8944', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8922', 'type' => 'premier', 'level' => 3],
    ['cust' => 'XT8816', 'type' => 'premier', 'level' => 3],
    ['cust' => 'XT7434', 'type' => 'standard', 'level' => 7],
];</code>
ログイン後にコピー

目的は、これらの顧客レコードを「レベル」列に基づいてグループ化し、各レベルに顧客情報の配列が含まれる 3D 配列を作成することです。望ましい結果は次のようになります。

<code class="php">$result = [
    1 => [
        ['cust' => 'XT8900', 'type' => 'standard'],
        ['cust' => 'XT8944', 'type' => 'standard'],
    ],
    3 => [
        ['cust' => 'XT8922', 'type' => 'premier'],
        ['cust' => 'XT8816', 'type' => 'premier'],
    ],
    7 => [
        ['cust' => 'XT7434', 'type' => 'standard'],
    ],
];</code>
ログイン後にコピー

これを達成するにはいくつかのアプローチがありますが、効果的な解決策を検討してみましょう:

  1. データの並べ替え:
    まず、2D 配列を「レベル」列でソートします。これは、usort() 関数を使用して各要素の「レベル」値を比較することで実行できます。
  2. 並べ替えられたデータのグループ化:
    次に、並べ替えられたデータを反復処理します。データを作成し、一時配列を作成します。エントリごとに、「レベル」値をキーとして取得し、エントリ全体を値として保存します。これにより、顧客レコードがレベル別に効果的にグループ化されます。

    <code class="php">foreach ($data as $key => &$entry) {
        $level_arr[$entry['level']][$key] = $entry;
    }</code>
    ログイン後にコピー

結果として得られる $level_arr は、目的の構造を持ち、各レベルには顧客情報の配列が含まれます。

  1. 3D 配列への変換:
    次に、一時的な $level_arr をターゲットの 3D 配列に変換します。これには、3D 配列のキーをレベル値に設定し、その値を $level_arr の対応する顧客配列に設定することが含まれます。

    <code class="php">$result = [];
    foreach ($level_arr as $level => $customer_data) {
        $result[$level] = array_values($customer_data);
    }</code>
    ログイン後にコピー
  2. 最終結果:
    $result 変数は、顧客レコードが「level」列でグループ化された 3D 配列になりました。

これらの手順に従うことで、特定の列値を使用して 2D 配列内のデータを効果的にグループ化し、強化されたデータ操作と視覚化のための 3D 配列。このアプローチは、複雑なデータ構造を扱う際に柔軟性と効率性を提供します。

以上が列の値に基づいて要素をグループ化して 2D 配列を 3D 配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート