「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で列形式のデータ構造を行ベースの形式に転置する方法

PHP で列形式のデータ構造を行ベースの形式に転置する方法

2024 年 11 月 8 日に公開
ブラウズ:939

How to Transpose a Columnar Data Structure into Row-based Format in PHP?

多次元列指向データを行ベースの構造に並べ替える

列指向のデータを含む連想配列が与えられた場合、タスクはそれを転置することです。行で構成される多次元配列。元の配列内のデータは列ごとに配置されており、目的は同じ列の値を行にマージすることです。

元の配列:

$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 つは、ループを使用して各列の値を反復処理し、列ごとに配列に結合することです。行。以下に例を示します。

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = [$id, $where['date'][$key]];
}

array_column() アプローチ:

ループベースのソリューションに代わる洗練された方法は、多次元データから特定の列を抽出する array_column() 関数を使用することです。配列.

$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = array_column($where, $key);
}

array_column() 関数は、指定された列を配列として返し、対応する行の値と組み合わせることができます。

出力:

どちらのソリューションでも目的の出力が生成されます:

[
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
]
最新のチュートリアル もっと>
  • Java でファイルまたはフォルダーのサイズを効率的に計算するにはどうすればよいですか?
    Java でファイルまたはフォルダーのサイズを効率的に計算するにはどうすればよいですか?
    Java でのファイルまたはフォルダーのサイズの取得ファイルまたはフォルダーのサイズの取得は、ファイルを操作する場合の一般的なタスクです。ジャワでは。これを効果的に行う方法は次のとおりです。ファイル サイズの取得ファイルのサイズを取得するには、java.io で length() メソッドを使用でき...
    プログラミング 2024 年 11 月 8 日に公開
  • 変数 その04
    変数 その04
    মনে করুন আপনি চা খাবেন। না, চা না। কফিই খান। প্রোগ্রামার হচ্ছেন কফি তো খেতেন পারেন। কফিকে প্রোগ্রামারদের সঙ্গি বললে ভুল হবে না । যাই হোক। এখন কফি তৈর...
    プログラミング 2024 年 11 月 8 日に公開
  • React を使い始めたときに知っておきたかったこと
    React を使い始めたときに知っておきたかったこと
    3 年間の React 開発から得た教訓 初めて React に飛び込んだとき、パンドラの箱を開けたような気分でした。学ぶことがたくさんあり、途中でたくさんの「なるほど!」に出会いました。瞬間。ここでは、React を始めるときに知っておきたかった 10 のことを紹介します。これは、React を始...
    プログラミング 2024 年 11 月 8 日に公開
  • Golang でのタイピング速度テスト CLI アプリケーションの作成
    Golang でのタイピング速度テスト CLI アプリケーションの作成
    そのタイトルについては、長く一生懸命考えなければなりませんでした?...話は終わったので、すごいコードを書いてみましょう :) ポンプブレーキ?悲鳴を上げる.... 今日構築しようとしているものについて少し紹介しましょう。タイトルがわかりにくいと思うので、ここでは golang で入力速度を計算する...
    プログラミング 2024 年 11 月 8 日に公開
  • ブートストラップ モーダルが機能しないのはなぜですか? ($(...).modal は関数ではありません)
    ブートストラップ モーダルが機能しないのはなぜですか? ($(...).modal は関数ではありません)
    TypeError: $(...).modal は Bootstrap Modal の関数ではありません次の操作をしようとしているときにこのエラーが発生しましたBootstrap モーダルを HTML に動的に挿入し、jQuery を使用してトリガーします。問題を詳しく調べてみましょう:このエラーは...
    プログラミング 2024 年 11 月 8 日に公開
  • PHP で再帰的な匿名関数を作成するには?
    PHP で再帰的な匿名関数を作成するには?
    再帰的な匿名 PHP 関数の作成PHP で再帰的な匿名関数を作成すると有利な場合があります。以下のコードは、関数を参照として渡してこれを実現する方法を示しています。$factorial = function( $n ) use ( &$factorial ) { if( $n...
    プログラミング 2024 年 11 月 8 日に公開
  • ダブルクリックの表示/非表示ボタンが 2 回目の呼び出しでのみ機能するのはなぜですか?
    ダブルクリックの表示/非表示ボタンが 2 回目の呼び出しでのみ機能するのはなぜですか?
    初回使用時にボタンの表示/非表示をダブルクリックするのはなぜですか?Web ページでは、ボタンは表示または非表示を目的としています。要素ですが、最初の呼び出し時にダブルクリックする必要があります。調べたところ、ボタンのコードは次のとおりであることがわかりました。function showhideme...
    プログラミング 2024 年 11 月 8 日に公開
  • グリッド レイアウト: 初心者のための究極のガイド
    グリッド レイアウト: 初心者のための究極のガイド
    CSS の冒険へようこそ!今日は、Web デザインの武器の中で最も強力なツールの 1 つである CSS グリッド レイアウトについて詳しく説明します。これは、レイアウト技術のスイス アーミー ナイフと考えてください。多用途かつ正確で、Web ページを美しく整理された傑作に変えることができます。グリッ...
    プログラミング 2024 年 11 月 8 日に公開
  • Python 辞書の理解: 完全な概要
    Python 辞書の理解: 完全な概要
    Python 辞書は、Python プログラミングで最も多用途で広く使用されているデータ構造の 1 つです。これらは、開発者がキーと値のペアでデータを保存できるようにする組み込みのデータ型であり、さまざまなアプリケーションで非常に役立ちます。この記事では、辞書とは何か、その使用方法を検討し、その機能...
    プログラミング 2024 年 11 月 8 日に公開
  • H1 タグの最後の単語の色を変更するにはどうすればよいですか?
    H1 タグの最後の単語の色を変更するにはどうすればよいですか?
    H1 の最後の単語の色を変更する解決策Web 開発の分野では、CSS を使用して要素をスタイル設定することは基本的な実践です。ただし、H1 タグ内の最後の単語の色を変更する場合、ネイティブ CSS では不十分です。ただし、従来の CSS の領域を超えた解決策があるため、心配する必要はありません。この...
    プログラミング 2024 年 11 月 8 日に公開
  • Angular Signals と RxJS の新機能
    Angular Signals と RxJS の新機能
    1) Signals vs RxJS: Angular 16 で Signal 変数を最初から作成し、Observable と比較します。 サイドバー メニューとトップ メニューがある例では、ボタンを押すたびに、トップ メニューがサイドバー メニューを折りたたむように指示します。 RxJS の場合:...
    プログラミング 2024 年 11 月 8 日に公開
  • malloc() と free() の実装 — 古いメモリが最初に再利用されます
    malloc() と free() の実装 — 古いメモリが最初に再利用されます
    malloc() と free() の実装に関するこのシリーズの前の post では、新しいブロックを解放することでメモリ ブロックを再利用し、ヒープを削減する方法を示しました。ただし、現在の関数には微妙な問題があります。新しいブロックの再利用が優先されるため、時間の経過とともにメモリ消費量が増加す...
    プログラミング 2024 年 11 月 8 日に公開
  • Java におけるカプセル化と抽象化: 究極のガイド
    Java におけるカプセル化と抽象化: 究極のガイド
    Java またはオブジェクト指向プログラミング (OOP) 言語を学習する場合、カプセル化と抽象化という 2 つの重要な概念が際立ちます。これらの概念は、コードの再利用性、セキュリティ、保守性を促進する OOP の重要な柱です。これらは一緒に使用されることが多いですが、異なる目的を果たします。 この...
    プログラミング 2024 年 11 月 8 日に公開
  • ZustandのソースコードのcreateWithEqualityFnImplについて説明しました。
    ZustandのソースコードのcreateWithEqualityFnImplについて説明しました。
    この記事では、理解を深めるために値の一部をログに記録することで、createWithEqualityFnImpl がどのように実装されるかを分析します。 上の画像からわかるように、createWithEqualityFn は関数 createWithEqualityFnImpl を呼び出します。この...
    プログラミング 2024 年 11 月 8 日に公開
  • CSV を保存するときに Pandas がインデックス列を追加しないようにするにはどうすればよいですか?
    CSV を保存するときに Pandas がインデックス列を追加しないようにするにはどうすればよいですか?
    Pandas を使用して保存された CSV のインデックス列を回避するPandas を使用して変更を加えた後に CSV ファイルを保存するとき、デフォルトの動作では、インデックス列。これを回避するには、to_csv() メソッドを使用するときにインデックス パラメーターを False に設定します。...
    プログラミング 2024 年 11 月 8 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3