ホームページ  >  記事  >  バックエンド開発  >  PHPのインデックス付き二次元配列を一次元に変換する方法

PHPのインデックス付き二次元配列を一次元に変換する方法

WBOY
WBOYオリジナル
2023-05-11 10:28:06414ブラウズ

PHP プログラミングでは、配列は通常、データの保存と処理に使用される重要なツールです。場合によっては、その後の処理と使用を容易にするために、2 次元配列を 1 次元配列に変換する必要があります。この記事では、PHP プログラミング言語を使用してこの機能を実装する方法を紹介します。

まず、例として 2 次元配列を定義する必要があります。以下は簡単な例です:

$cars = array(
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

上の配列は、車名、販売台数、在庫を含む 4 台の車を表します。次に、2 次元配列を 1 次元配列に変換するいくつかの方法を示します。

  1. foreach ループの使用

foreach ループを使用すると、2 次元配列の各要素を走査し、それを 1 次元配列の要素に変換できます。 。コードの実装は次のとおりです。

$flat_cars = array();
foreach($cars as $car) {
  foreach($car as $detail) {
    $flat_cars[] = $detail;
  }
}

上記のコードでは、空の配列 $ flat_cars が作成されます。 foreach ループを通じて、2 次元配列 $cars の各要素 $car が走査され、1 次元配列 $detail に分解されます。次に、$detail の要素を $ flat_cars 配列に追加します。最終的に、$ flat_cars は 1 次元配列になり、各要素は元の 2 次元配列 $cars の要素に対応します。

  1. array_reduce 関数の使用

PHP の array_reduce 関数は、指定されたコールバック関数を通じて配列を蓄積し、最後に蓄積された結果を返すことができます。この関数を使用して、2 次元配列を 1 次元配列に変換できます。

$flat_cars = array_reduce($cars, 'array_merge', array());

上記のコードでは、まず array_reduce 関数を呼び出し、元の配列 $cars を渡し、累積計算用のコールバック関数 'array_merge' を指定します。 「array_merge」関数は、array_reduce 関数にパラメータとして組み込まれます。最後に、array_reduce 関数の 3 番目のパラメーターとして空の配列を指定すると、$cars 配列を 1 次元配列 $ flat_cars に変換できます。

  1. array_column 関数を使用する

array_column 関数は、PHP 5.5 以降では非常に実用的な関数で、配列内の特定の列の値を抽出して 1 を返すことができます。 -次元配列。これを使用して、2 次元配列を 1 次元配列に変換できます。

$flat_cars = array_column($cars, null, 0);

上記のコードでは、array_column 関数を呼び出し、元の配列 $cars を渡し、2 番目のパラメーターは null です。最初のパラメータ $cars は、特定の列の配列を抽出する必要があることを示し、2 番目のパラメータ null は、データ行全体が抽出されることを示します。最後のパラメータ 0 は、指定された列 (つまり車名) の最初の要素が抽出され、1 次元配列が返されることを意味します。この 1 次元配列には、$cars 2 次元配列のすべての要素が含まれています。

概要

PHP プログラミングでは、2 次元配列を 1 次元配列に変換することは非常に一般的な操作です。この記事では、この機能を実現するための foreach ループ、array_reduce 関数、array_column 関数を使用する 3 つの方法を紹介します。各方法には適用可能なシナリオ、長所と短所があり、使用する場合は実際の状況に応じて選択する必要があります。

以上がPHPのインデックス付き二次元配列を一次元に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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