Heim > Backend-Entwicklung > PHP-Problem > PHP-Konvertierung mehrdimensionaler Arrays

PHP-Konvertierung mehrdimensionaler Arrays

PHPz
Freigeben: 2023-05-07 16:50:08
Original
539 Leute haben es durchsucht

In der PHP-Programmierung ist ein mehrdimensionales Array eine häufig verwendete Datenstruktur. Mit zunehmender Geschäftskomplexität müssen wir möglicherweise mehrdimensionale Arrays konvertieren und einige Vorgänge ausführen. In diesem Artikel stellen wir die Konvertierungsmethode von einem mehrdimensionalen Array in ein eindimensionales Array in PHP vor.

1. Was ist ein mehrdimensionales Array?

In PHP ist ein Array ein spezieller Variablentyp, der zum Speichern einer Reihe von Werten verwendet wird. Ein mehrdimensionales Array bedeutet, dass jedes Element im Array auch ein Array ist. Dieses Elementarray kann zweidimensional, dreidimensional oder sogar mehr sein. Das Folgende ist ein Beispiel:

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
Nach dem Login kopieren

In diesem mehrdimensionalen Array ist $multiArray0 „Banane“.

2. So konvertieren Sie ein mehrdimensionales Array in ein eindimensionales Array

Manchmal müssen wir ein mehrdimensionales Array in ein eindimensionales Array umwandeln und verarbeiten. Die spezifischen Konvertierungsmethoden sind in die folgenden drei Typen unterteilt:

  1. Verwenden Sie die Funktion array_merge.

Die Funktion array_merge kann mehrere Arrays zu einem Array zusammenführen und ein neues Array zurückgeben. Mit dieser Funktion können wir ein mehrdimensionales Array in ein eindimensionales Array komprimieren.

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = array();
foreach($multiArray as $value) {
    $oneArray = array_merge($oneArray, $value);
}
print_r($oneArray);
Nach dem Login kopieren

Laufergebnisse:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode eignet sich für Situationen, in denen die Dimension des mehrdimensionalen Arrays nicht zu hoch ist, führt jedoch zu Leistungsproblemen bei der Verarbeitung großer, hochdimensionaler mehrdimensionaler Arrays.

  1. Verwenden Sie die integrierte Funktion array_walk_recursive

Die Funktion array_walk_recursive kann ein mehrdimensionales Array durchlaufen und eine benutzerdefinierte Rückruffunktion für alle seine Werte ausführen. Wir können es verwenden, um mehrdimensionale Arrays in eindimensionale Arrays zu komprimieren.

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = array();
array_walk_recursive($multiArray, function($value) use(&$oneArray) {
    $oneArray[] = $value;
});
print_r($oneArray);
Nach dem Login kopieren

Laufendes Ergebnis:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode ist eine in PHP integrierte Funktion, die mehrdimensionale Arrays schnell durchlaufen und in eindimensionale Arrays komprimieren kann. Aufgrund der Verwendung von Rückruffunktionen kann jedoch die Effizienz der Codeausführung beeinträchtigt werden.

  1. Rekursive Methoden verwenden

Rekursive Methoden sind Methoden, bei denen sich eine Funktion selbst aufrufen kann. Wir können rekursive Methoden verwenden, um mehrdimensionale Arrays zu durchlaufen und sie in eindimensionale Arrays zu komprimieren.

function multi2single($multiArray, $oneArray = array()) {
    foreach($multiArray as $value) {
        if(is_array($value)) {
            $oneArray = multi2single($value, $oneArray);
        } else {
            $oneArray[] = $value;
        }
    }
    return $oneArray;
}
$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = multi2single($multiArray);
print_r($oneArray);
Nach dem Login kopieren

Laufende Ergebnisse:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Vorteile dieser Methode sind schnelle Durchlaufgeschwindigkeit und einfacher Code, und ihre Leistung ist bei der Verarbeitung großer, hochdimensionaler mehrdimensionaler Arrays relativ gut.

Zusammenfassung:

Um ein mehrdimensionales Array in ein eindimensionales Array umzuwandeln, können Sie die Funktion array_merge, die Funktion array_walk_recursive und die rekursive Methode verwenden. Wenn Sie es schnell implementieren müssen, können Sie die Funktion array_walk_recursive verwenden. Wenn Sie die Leistung optimieren müssen, können Sie einen rekursiven Ansatz verwenden.

Das Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array ist ein häufiger Vorgang in der PHP-Programmierung. Wir können die geeignete Verarbeitungsmethode entsprechend der tatsächlichen Situation auswählen.

Das obige ist der detaillierte Inhalt vonPHP-Konvertierung mehrdimensionaler Arrays. 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