ホームページ  >  記事  >  バックエンド開発  >  PHPでの多次元配列間の変換

PHPでの多次元配列間の変換

PHPz
PHPzオリジナル
2023-05-23 11:25:37470ブラウズ

PHP プログラミングでは、配列は非常に一般的に使用されるデータ構造であり、多次元配列を使用すると複雑なデータの処理がより便利になります。ただし、場合によっては、多次元配列を他の形式の配列に変換したり、他の形式の配列を多次元配列に変換したりする必要があります。この記事では、PHP で多次元配列間の変換を行う方法を紹介します。

1. 多次元配列を 1 次元配列に変換する

場合によっては、データの保存や保管を容易にするために、多次元配列を 1 次元配列に変換する必要があります。伝染 ; 感染。 PHP には、多次元配列を 1 次元配列に変換できる非常に便利な関数 array_values() が用意されています。次のサンプル コードを見てください:

$multi_dimension_array = array(
    array('a', 'b', 'c'),
    array('d' => 'e', 'f' => 'g'),
    array(1, 2, 3)
);
$one_dimension_array = array_values(array_reduce($multi_dimension_array, 'array_merge', array()));
print_r($one_dimension_array);

出力結果は次のとおりです:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => e
    [f] => g
    [4] => 1
    [5] => 2
    [6] => 3
)

上記のサンプル コードでは、最初に 3 つのサブ配列を含む多次元配列 $multi_dimension_array を定義します。次に、PHP の array_reduce() 関数と array_merge() 関数を使用して、複数の部分配列を 1 次元配列にマージしました。最後に、array_values() 関数を使用して、マージされた 1 次元配列のインデックスを再作成し、結果を出力します。

2. 1 次元配列を多次元配列に変換する

同様に、1 次元配列を多次元配列に変換する必要がある場合もあります。 PHP には、この目的を達成するための実用的な関数もいくつか用意されています。以下に2つの方法を紹介します。

  1. array_chunk() 関数を使用する

PHP の array_chunk() 関数は、指定されたサイズに従って 1 次元配列を複数の小さな配列に分割し、新しい 2 次元配列。サンプル コードは次のとおりです。

$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
$multi_dimension_array = array_chunk($one_dimension_array, 3);
print_r($multi_dimension_array);

出力結果は次のとおりです。

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => i
        )

    [3] => Array
        (
            [0] => j
        )

)

上記のサンプル コードでは、まず 1 次元配列 $one_dimension_array を定義します。次に、array_chunk() 関数を使用して $one_dimension_array を長さ 3 の複数の小さな配列に分割し、新しい 2 次元配列 $multi_dimension_array を返します。

  1. foreach ループを使用する

array_chunk() 関数を使用したくない場合は、foreach ループを使用して 1 次元配列を 1 次元配列に変換することもできます。多次元配列。サンプル コードは次のとおりです。

$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j');
$multi_dimension_array = array();
$count = 0;
foreach ($one_dimension_array as $item) {
    $multi_dimension_array[floor($count / 3)][$count % 3] = $item;
    $count++;
}
print_r($multi_dimension_array);

出力結果は次のとおりです。

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

    [2] => Array
        (
            [0] => g
            [1] => h
            [2] => i
        )

    [3] => Array
        (
            [0] => j
        )

)

上記のサンプル コードでは、まず空の 2 次元配列 $multi_dimension_array とカウント変数 $count を定義します。 。次に、foreach ループを使用して $one_dimension_array 配列内の各要素を反復処理し、その要素を $multi_dimension_array 配列に追加します。新しい部分配列のインデックスを決定するには、floor($count / 3) を使用し、部分配列内の新しい要素のインデックスを決定するには、$count % 3 を使用します。最後に、print_r() 関数を使用して結果を出力します。

3. 概要

PHP プログラミングでは、配列の処理は非常に一般的なタスクです。多次元配列を 1 次元配列に変換する場合でも、1 次元配列を多次元配列に変換する場合でも、PHP は非常に実用的な関数とメソッドをいくつか提供します。この記事の紹介により、読者の皆様はこれらの機能やメソッドの使い方を理解し、実際の開発で柔軟に活用できるようになったと思います。

以上がPHPでの多次元配列間の変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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