多次元列指向データを行ベースの構造に並べ替える
列指向のデータを含む連想配列が与えられた場合、タスクはそれを転置することです。行で構成される多次元配列。元の配列のデータは列ごとに配置されており、目的は同じ列の値を行にマージすることです。
元の配列:
$where = [ 'id' => [ 12, 13, 14 ], 'date' => [ '1999-06-12', '2000-03-21', '2006-09-31' ] ];
望ましい出力:
$comb = [ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ];
解決策:
このデータ再構築を実現する効果的な方法の 1 つは、次を使用して各列の値を反復処理することです。ループを作成し、それらを行ごとに配列に結合します。以下に例を示します:
<code class="php">$result = []; foreach ($where['id'] as $key => $id) { $result[] = [$id, $where['date'][$key]]; }</code>
array_column() アプローチ:
ループベースのソリューションに代わる洗練された方法は、array_column() 関数を使用することです。多次元配列の特定の列。
<code class="php">$result = []; foreach ($where['id'] as $key => $id) { $result[] = array_column($where, $key); }</code>
array_column() 関数は、指定された列を配列として返し、対応する行の値と組み合わせることができます。
出力:
どちらのソリューションも目的の出力を生成します:
[ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ]
以上がPHP で列形式のデータ構造を行ベースの形式に転置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。