ホームページ >バックエンド開発 >PHPの問題 >2D配列を1D配列に分割する方法php

2D配列を1D配列に分割する方法php

PHPz
PHPzオリジナル
2023-05-19 10:19:07615ブラウズ

PHP では、2 次元配列は一般的なデータ構造であり、複数の 1 次元配列で構成され、各 1 次元配列には複数の要素を含めることができます。場合によっては、より柔軟な操作と処理を行うために、2 次元配列を複数の 1 次元配列に分割する必要があります。この記事では、2次元配列を1次元配列に分割する方法を説明します。

1. foreach ループの使用

PHP では、foreach ループを使用して 2 次元配列を走査し、配列インデックスを通じて対応する 1 次元配列を取得できます。以下は、foreach ループを使用して 2 次元配列を 1 次元配列に分割する例です。

$twoDimensionalArray = array(
    array('A', 'B', 'C'),
    array('D', 'E', 'F'),
    array('G', 'H', 'I')
);

$oneDimensionalArray1 = array();
$oneDimensionalArray2 = array();
$oneDimensionalArray3 = array();

foreach ($twoDimensionalArray as $key => $value) {
    $oneDimensionalArray1[] = $value[0];
    $oneDimensionalArray2[] = $value[1];
    $oneDimensionalArray3[] = $value[2];
}

print_r($oneDimensionalArray1);
print_r($oneDimensionalArray2);
print_r($oneDimensionalArray3);

この例では、foreach ループを使用して 2 次元配列 $twoDimensionalArray を反復処理し、配列インデックス要素によって各 1 次元配列を取得します。次に、要素の値を対応する 1 次元配列に追加することで、2 次元配列を 3 つの 1 次元配列 $oneDimensionalArray1、$oneDimensionalArray2、$oneDimensionalArray3 に分割します。

2. array_column 関数を使用する

PHP5.5 以降では、array_column 関数を使用して 2 次元配列の列を 1 次元配列に分割できます。以下は、array_column 関数を使用して 2 次元配列を 1 次元配列に分離する例です。

$twoDimensionalArray = array(
    array('id' => 1, 'name' => 'apple', 'price' => 3.5),
    array('id' => 2, 'name' => 'banana', 'price' => 2.5),
    array('id' => 3, 'name' => 'orange', 'price' => 4.0)
);

$idArray = array_column($twoDimensionalArray, 'id');
$nameArray = array_column($twoDimensionalArray, 'name');
$priceArray = array_column($twoDimensionalArray, 'price');

print_r($idArray);
print_r($nameArray);
print_r($priceArray);

この例では、array_column 関数を使用して 2 次元配列の各列を分離します。 $twoDimensionalArray を 1 次元配列 $idArray、$nameArray、$priceArray に変換します。この関数を使用すると、配列を走査するための foreach ループの使用が回避され、より簡潔で保守が容易になります。

3. array_map 関数を使用する

PHP では、array_map 関数を使用して 2 次元配列を複数の 1 次元配列に分割することもできます。以下は、array_map 関数を使用して 2 次元配列を 1 次元配列に分割する例です。

$twoDimensionalArray = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

$firstArray = array_map(function($arr) { return $arr[0]; }, $twoDimensionalArray);
$secondArray = array_map(function($arr) { return $arr[1]; }, $twoDimensionalArray);
$thirdArray = array_map(function($arr) { return $arr[2]; }, $twoDimensionalArray);

print_r($firstArray);
print_r($secondArray);
print_r($thirdArray);

この例では、array_map 関数を使用して、2 次元配列 $twoDimensionalArray を次のように分割します。 3 つの 1 次元配列 $firstArray、$secondArray、$thirdArray。無名関数を使用して、配列内の各 1 次元配列の要素を分離し、新しい 1 次元配列として返します。

上記の 3 つの方法により、2 次元配列を複数の 1 次元配列に分割して、データの操作と処理を容易にすることができます。これらの方法を使用すると、コードの量が削減され、コードの可読性と保守性が向上し、プログラムのパフォーマンスもより効率的になります。

以上が2D配列を1D配列に分割する方法phpの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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