ホームページ >バックエンド開発 >PHPチュートリアル >サブ配列を 1 つの列でグループ化し、別の列からカンマ区切りの値を生成するにはどうすればよいですか?

サブ配列を 1 つの列でグループ化し、別の列からカンマ区切りの値を生成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 18:11:02618ブラウズ

How to Group Subarrays by One Column and Generate Comma-Separated Values from Another Column?

サブ配列を 1 つの列でグループ化し、他の列からカンマ区切りの値を生成する

概要

2 つの列を持つ部分配列の配列が与えられた場合、タスクはこれらの部分配列を 1 つの列でグループ化し、もう一方の列の値がカンマで区切られた新しい部分配列を作成することです。

元の構造:

$array = [
    ["444", "0081"],
    ["449", "0081"],
    ["451", "0081"],
    ["455", "2100"],
    ["469", "2100"]
];

必要な構造:

array (
  0 => 
  array (
    0 => '444,449,451',
    1 => '0081',
  ),
  1 => 
  array (
    0 => '455,469',
    1 => '2100',
  ),
)

ソリューション

エレガントなソリューションは、以下を反復することで達成できます。元の配列を取得し、グループ化キーに基づいて値を一時配列に収集します。その後、一時配列を使用して目的の構造を構築します。

<code class="php">$data = []; 
$groups = [];

foreach($data as $item){
    if(!array_key_exists($item[1], $groups)){
        $groups[$item[1]] = [];
    }
    $groups[$item[1]][] = $item[0];
}

$structured = [];
foreach($groups as $group => $values){
    $structured[] = [implode(',', $values), $group];
}</code>

このアプローチにより、部分配列が正しくグループ化され、他の列の値がカンマ区切りの文字列として結合されます。基本的な PHP 配列関数と foreach ループを利用して、目的の結果を実現します。

以上がサブ配列を 1 つの列でグループ化し、別の列からカンマ区切りの値を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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