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

PHP zweidimensionales Array in ein eindimensionales Array umwandeln

王林
Freigeben: 2023-05-23 10:47:37
Original
511 Leute haben es durchsucht

In PHP ist ein Array eine sehr leistungsfähige und flexible Datenstruktur, die viele verschiedene Datentypen speichern kann. PHP-Arrays können eindimensionale Arrays, zweidimensionale Arrays, mehrdimensionale Arrays usw. sein.

Im eigentlichen Entwicklungsprozess müssen wir häufig zweidimensionale Arrays in eindimensionale Arrays konvertieren, um das Durchlaufen und Verarbeiten von Daten zu erleichtern. In diesem Artikel wird erläutert, wie Sie in PHP ein zweidimensionales Array in ein eindimensionales Array konvertieren.

PHP Zweidimensionales Array

In PHP ist ein zweidimensionales Array ein Array, in dem die Elemente im Array auch Arrays sind. Zum Beispiel:

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

Hier erstellen wir ein $students-Array, das drei Elemente enthält. Jedes Element ist ein Array, das den Namen, das Alter und die Noten des Schülers enthält.

Konvertieren Sie ein zweidimensionales Array in ein eindimensionales Array

In PHP gibt es viele Möglichkeiten, ein zweidimensionales Array in ein eindimensionales Array umzuwandeln. Hier sind einige häufig verwendete Methoden:

Methode 1: Schleifendurchlauf

Wir können jedes Element des zweidimensionalen Arrays durchlaufen und es dann in einer Schleife zu einem neuen zusammenführen eindimensionales Array.

$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);
Nach dem Login kopieren

Die Ausgabe des obigen Codes lautet:

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
        )

)
Nach dem Login kopieren

Wie Sie sehen können, konvertieren wir durch Schleifendurchlauf das zweidimensionale Array in ein neues assoziatives Array, in dem Jedes Element entspricht einem Schlüsselwert für jedes Element des ursprünglichen zweidimensionalen Arrays.

Methode 2: Verwenden Sie die Funktion array_column.

PHP stellt die Funktion array_column bereit, um die angegebene Spalte aus einem mehrdimensionalen Array abzurufen. Mit dieser Funktion können wir den Namen, das Alter und die Punktzahl jedes Schülers ermitteln und diese dann in einem neuen eindimensionalen Array zusammenführen.

$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);
Nach dem Login kopieren

Das Ausgabeergebnis des obigen Codes ist das gleiche wie bei Methode eins.

Methode 3: Verwenden Sie die Funktion array_reduce.

Wir können die Funktion array_reduce verwenden, um zweidimensionale Arrays zu durchlaufen und sie dann zu einem neuen eindimensionalen Array zusammenzuführen.

$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);
Nach dem Login kopieren

Das Ausgabeergebnis des obigen Codes ist das gleiche wie bei Methode eins.

Methode 4: Benutzerdefinierte Funktion

Wir können auch eine Funktion anpassen, um ein zweidimensionales Array in ein eindimensionales Array umzuwandeln.

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);
Nach dem Login kopieren

Das Ausgabeergebnis des obigen Codes ist das gleiche wie bei Methode eins.

Zusammenfassung

In PHP gibt es viele Möglichkeiten, ein zweidimensionales Array in ein eindimensionales Array umzuwandeln, einschließlich Durchschleifen mit der Funktion array_column und array_reduce Funktion und benutzerdefinierte Funktionen warten. Welche Methode zu wählen ist, hängt von den Anforderungen des jeweiligen Szenarios und den Entwicklungsgewohnheiten ab. Im eigentlichen Entwicklungsprozess müssen wir diese Methoden flexibel einsetzen, um Daten effizienter zu verarbeiten.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage