PHPの二次元配列から一次元配列へ

王林
リリース: 2023-05-23 10:47:37
オリジナル
460 人が閲覧しました

PHP では、配列はさまざまな種類のデータを格納できる非常に強力で柔軟なデータ構造です。 PHP 配列には、1 次元配列、2 次元配列、多次元配列などがあります。

実際の開発プロセスでは、データの走査と処理を容易にするために、多くの場合、2 次元配列を 1 次元配列に変換する必要があります。この記事では、PHPで2次元配列を1次元配列に変換する方法を紹介します。

PHP の 2 次元配列

PHP では、2 次元配列とは、配列内の要素も配列である配列です。例:

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);
ログイン後にコピー

ここでは、3 つの要素を含む $students 配列を作成します。各要素は、学生の名前、年齢、成績を含む配列です。

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

PHP では、2 次元配列を 1 次元配列に変換する方法が数多くあります。

方法 1: ループ トラバーサル

2 次元配列の各要素をループして、それを新しい 1 次元配列にマージできます。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array();
foreach ($students as $student) {
    foreach ($student as $key => $value) {
        $newArray[$key][] = $value;
    }
}

print_r($newArray);
ログイン後にコピー

上記のコードの出力結果は次のとおりです:

Array
(
    [name] => Array
        (
            [0] => John
            [1] => Mike
            [2] => Mary
        )

    [age] => Array
        (
            [0] => 23
            [1] => 21
            [2] => 22
        )

    [score] => Array
        (
            [0] => 90
            [1] => 80
            [2] => 85
        )

)
ログイン後にコピー

ご覧のとおり、ループ トラバーサルを通じて、2 次元配列を新しい連想配列に変換します。各要素は対応しています。 2 次元配列の各要素のキー値を元の値に戻します。

方法 2: array_column 関数を使用する

PHP には、多次元配列から指定された列を取得するための array_column 関数が用意されています。この関数を使用して、各生徒の名前、年齢、スコアを取得し、それらを新しい 1 次元配列にマージできます。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array(
    "name" => array_column($students, "name"),
    "age" => array_column($students, "age"),
    "score" => array_column($students, "score")
);

print_r($newArray);
ログイン後にコピー

上記のコードの出力結果は、方法 1 と同じです。

方法 3: array_reduce 関数を使用する

array_reduce 関数を使用すると、2 次元配列を反復処理し、それらを新しい 1 次元配列にマージできます。

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_reduce($students, function($carry, $student) {
    foreach ($student as $key => $value) {
        $carry[$key][] = $value;
    }
    return $carry;
}, array());

print_r($newArray);
ログイン後にコピー

上記のコードの出力結果は、方法 1 と同じです。

方法 4: カスタム関数

関数をカスタマイズして、2 次元配列を 1 次元配列に変換することもできます。

function array_convert($arr) {
    $result = array();
    foreach ($arr as $row) {
        foreach ($row as $key => $value) {
            $result[$key][] = $value;
        }
    }
    return $result;
}

$students = array(
    array("name" => "John", "age" => 23, "score" => 90),
    array("name" => "Mike", "age" => 21, "score" => 80),
    array("name" => "Mary", "age" => 22, "score" => 85)
);

$newArray = array_convert($students);
print_r($newArray);
ログイン後にコピー

上記のコードの出力結果は、方法 1 と同じです。

概要

PHP では、ループ トラバーサル、array_column 関数の使用、array_reduce 関数の使用、カスタム 関数の使用など、2 次元配列を 1 次元配列に変換するさまざまな方法があります。機能。どの方法を選択するかは、特定のシナリオのニーズと開発習慣によって異なります。実際の開発プロセスでは、データをより効率的に処理するために、これらの方法を柔軟に使用する必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!