Heim >Backend-Entwicklung >PHP-Problem >Konvertieren Sie ein eindimensionales Array in ein zweidimensionales Array in PHP

Konvertieren Sie ein eindimensionales Array in ein zweidimensionales Array in PHP

王林
王林Original
2023-05-23 11:10:371281Durchsuche

In PHP besteht manchmal die Notwendigkeit, ein eindimensionales Array in ein zweidimensionales Array umzuwandeln. Beispielsweise müssen wir möglicherweise ein eindimensionales Array verarbeiten, das viele Daten enthält, die Daten müssen jedoch nach bestimmten Regeln gruppiert werden. In diesem Fall müssen wir das eindimensionale Array in ein zweidimensionales umwandeln Array.

Als nächstes stellen wir vor, wie man ein eindimensionales Array in ein zweidimensionales Array umwandelt.

Methode 1: for-Schleife verwenden

Zunächst können wir die for-Schleife verwenden, um das eindimensionale Array zu durchlaufen, und dann die Daten entsprechend der Datengruppierung zum neuen zweidimensionalen Array hinzufügen. Diese Methode ist relativ einfach, erfordert jedoch die manuelle Pflege einiger Variablen, was umständlich ist.

Der Implementierungscode lautet wie folgt:

<?php

// 定义一维数组
$arr = array(
    array("name" => "Tom", "age" => 18, "sex" => "male"),
    array("name" => "Jerry", "age" => 20, "sex" => "female"),
    array("name" => "Lucy", "age" => 21, "sex" => "female"),
    array("name" => "Bob", "age" => 22, "sex" => "male")
);

// 新的二位数组
$newArr = array();

// 遍历一维数组
for ($i = 0; $i < count($arr); $i++) {
    $sex = $arr[$i]["sex"];
    $newArr[$sex][] = $arr[$i];
}

// 打印结果
print_r($newArr);

Die laufenden Ergebnisse lauten wie folgt:

Array
(
    [male] => Array
        (
            [0] => Array
                (
                    [name] => Tom
                    [age] => 18
                    [sex] => male
                )

            [1] => Array
                (
                    [name] => Bob
                    [age] => 22
                    [sex] => male
                )

        )

    [female] => Array
        (
            [0] => Array
                (
                    [name] => Jerry
                    [age] => 20
                    [sex] => female
                )

            [1] => Array
                (
                    [name] => Lucy
                    [age] => 21
                    [sex] => female
                )

        )

)

Methode 2: Verwenden Sie die Funktion array_reduce

Die Funktion array_reduce in PHP kann die Werte eines Arrays durch a iterativ zu einem einzelnen Wert kombinieren benutzerdefinierte Funktion. Mit der Funktion array_reduce können wir ein eindimensionales Array in ein zweidimensionales Array umwandeln.

Der Implementierungscode lautet wie folgt:

<?php

// 定义一维数组
$arr = array(
    array("name" => "Tom", "age" => 18, "sex" => "male"),
    array("name" => "Jerry", "age" => 20, "sex" => "female"),
    array("name" => "Lucy", "age" => 21, "sex" => "female"),
    array("name" => "Bob", "age" => 22, "sex" => "male")
);

// 使用 array_reduce 函数
$newArr = array_reduce($arr, function($carry, $item) {
    $sex = $item["sex"];
    if (!isset($carry[$sex])) {
        $carry[$sex] = array();
    }
    $carry[$sex][] = $item;
    return $carry;
}, array());

// 打印结果
print_r($newArr);

Das laufende Ergebnis ist das gleiche wie bei Methode eins.

Methode 3: Verwenden Sie die Funktion array_map

Die Funktion array_map in PHP kann jedes Element eines oder mehrerer Arrays zur Verarbeitung an die Rückruffunktion übergeben und dann das verarbeitete Ergebnis zurückgeben. Mit dieser Verarbeitungsmethode können wir die Verwendung von for-Zyklus vermeiden.

Der Implementierungscode lautet wie folgt:

<?php

// 定义一维数组
$arr = array(
    array("name" => "Tom", "age" => 18, "sex" => "male"),
    array("name" => "Jerry", "age" => 20, "sex" => "female"),
    array("name" => "Lucy", "age" => 21, "sex" => "female"),
    array("name" => "Bob", "age" => 22, "sex" => "male")
);

// 使用 array_map 函数
$newArr = array_map(function($item) {
    $sex = $item["sex"];
    return array($sex => $item);
}, $arr);

// 将处理后的二维数组进行合并
$newArr = call_user_func_array("array_merge", $newArr);

// 打印结果
print_r($newArr);

Das Operationsergebnis ist das gleiche wie bei Methode eins und Methode zwei.

Zusammenfassung

In diesem Artikel haben wir drei Methoden zum Konvertieren eines eindimensionalen Arrays in ein zweidimensionales Array vorgestellt, indem wir die for-Schleife, die Funktion array_reduce und die Funktion array_map verwenden.

Diese Methoden haben alle gewisse Vor- und Nachteile, und welche Methode man wählt, sollte auch anhand der tatsächlichen Situation abgewogen werden. Aber im Allgemeinen ist die Verwendung der Funktionen array_reduce und array_map prägnanter und eleganter.

Das obige ist der detaillierte Inhalt vonKonvertieren Sie ein eindimensionales Array in ein zweidimensionales Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn