ホームページ  >  記事  >  バックエンド開発  >  PHPの2次元配列を1次元配列に変換する方法

PHPの2次元配列を1次元配列に変換する方法

PHPz
PHPzオリジナル
2023-04-19 10:07:141098ブラウズ

PHP では、2 次元配列は順序付けされたデータを格納するデータ構造であり、複数のデータ要素を 1 つの配列に編成し、インデックスを介して各要素にアクセスできます。ただし、場合によっては、他の操作を容易にするために 2 次元配列を 1 次元配列に変換する必要があります。この記事では、PHPで2次元配列を1次元配列に変換する方法を詳しく紹介します。

1. foreach ループを使用してトラバースする

foreach ループの使用は、2 次元配列を 1 次元配列に変換する最も一般的な方法です。具体的な手順は次のとおりです。

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一维数组
$studentInfo = array();

//遍历二维数组
foreach($students as $student) {
    foreach($student as $key => $value) {
        //将二维数组的元素添加到一维数组中
        $studentInfo[$key][] = $value;
    }
}

//输出一维数组
print_r($studentInfo);

上記のコードでは、まず 3 人の学生の名前、年齢、性別を含む 2 次元配列 $students を定義します。次に、学生情報を格納する 1 次元配列 $studentInfo を定義します。 foreach ループを使用して 2 次元配列を反復処理し、内部の要素を 1 次元配列に追加します。最後に、変換された 1 次元配列が出力されます。以下の結果が出力されます。

Array
(
    [name] => Array
        (
            [0] => 张三
            [1] => 李四
            [2] => 王五
        )

    [age] => Array
        (
            [0] => 18
            [1] => 20
            [2] => 19
        )

    [gender] => Array
        (
            [0] => 男
            [1] => 女
            [2] => 男
        )

)

2 次元配列 $students が 1 次元配列 $studentInfo に変換されたことがわかります。

2. array_map 関数を使用する

foreach ループの使用に加えて、PHP 組み込み関数 array_map を使用して 2 次元配列を 1 次元配列に変換することもできます。 。具体的な手順は次のとおりです。

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一个函数,用于将二维数组元素转换为一维数组
function flatten($item) {
    return $item;
}

//调用array_map函数,将二维数组转换为一维数组
$studentInfo = array_map("flatten", $students);

//输出一维数组
print_r($studentInfo);

上記のコードでは、定義された 2 次元配列 $students を使用します。さらに、2 次元配列の各要素を 1 次元配列に変換する flatten() という関数を定義します。 array_map 関数を使用して flatten() 関数を呼び出し、2 次元配列を 1 次元配列 $studentInfo に変換します。次の結果が出力されます。

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

array_map 関数を使用した方が、foreach ループを使用した場合よりも構造が簡潔であることがわかります。

3. implode 関数を使用する

最後に、implode 関数を使用して 2 次元配列をカンマ区切りの文字列に変換し、explode 関数を使用して文字列を次元配列に変換します。具体的な手順は次のとおりです。

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//首先将二维数组转换成字符串
$str = implode(",", $students);

//然后使用explode函数将字符串转换成一维数组
$studentInfo = explode(",", $str);

//输出一维数组
print_r($studentInfo);

上記のコードでは、まず implode 関数を使用して 2 次元配列をカンマ区切りの文字列に変換し、次に、explode 関数を使用して文字列を次のように変換します。 1 次元配列 $studentInfo。以下の結果が出力されます。

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

この方法は、array_map 関数を使用した場合と同じであることがわかります。

要約すると、2 次元配列を 1 次元配列に変換することは一般的ではありませんが、foreach ループ、array_map 関数、または implode 関数メソッドを使用してこの関数を実現できます。選択する場合、開発者は実際の状況に基づいて最適な方法を選択する必要があります。

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

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