So konvertieren Sie ein zweidimensionales Array in ein eindimensionales Array in PHP

PHPz
Freigeben: 2023-04-27 09:39:58
Original
775 Leute haben es durchsucht

Bei der PHP-Programmierung stoßen wir häufig auf die Notwendigkeit, ein zweidimensionales Array in ein eindimensionales Array umzuwandeln. Diese Situation kommt sowohl bei der Datenverarbeitung als auch bei der Logikverarbeitung häufig vor. Wie konvertiert man also ein zweidimensionales Array in ein eindimensionales Array? In diesem Artikel werden Ihnen mehrere einfache Implementierungsmethoden vorgestellt.

Szenarioanalyse

Schauen wir uns zunächst ein einfaches Beispiel an. Wir haben ein zweidimensionales Array, zum Beispiel:

$data = array(
    array('id' => 1, 'name' => '张三', 'age' => 20),
    array('id' => 2, 'name' => '李四', 'age' => 22),
    array('id' => 3, 'name' => '王五', 'age' => 25)
);
Nach dem Login kopieren

Wir müssen dieses zweidimensionale Array in ein eindimensionales Array konvertieren. Der Schlüsselname des eindimensionalen Arrays muss sein ID und Schlüsselwert jedes Elements im zweidimensionalen Array sind der Name jedes Elements im zweidimensionalen Array. Wie erreicht man das?

Lösung

Methode 1: Schleifendurchquerung verwenden

Der einfachste Weg, dies zu implementieren, ist die Verwendung von Schleifendurchquerung. Der spezifische Implementierungsprozess ist wie folgt:

$result = array();
foreach ($data as $item) {
    $result[$item['id']] = $item['name'];
}
Nach dem Login kopieren

Erklären Sie den obigen Code. Wir definieren zunächst ein Array mit dem Namen $result, um das konvertierte eindimensionale Array zu speichern. Verwenden Sie dann eine foreach-Schleife, um das zweidimensionale Array $data zu durchlaufen. $item repräsentiert jedes Element des zweidimensionalen Arrays. Bei jedem Durchlauf verwenden wir den Schlüssel „id“ des Arrays „$item“ als Schlüssel des eindimensionalen Arrays und den Schlüssel „name“ des Arrays „$item“ als Schlüssel des eindimensionalen Arrays und speichern sie im $result-Array.

Schließlich ist der Inhalt in $result:

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Methode 2: Verwenden Sie die Funktionen array_map und array_column

Eine andere Implementierungsmethode ist die Verwendung von PHP Built -in Funktionen array_map und array_column. Der spezifische Implementierungscode lautet wie folgt:

$result = array_map(function($v){return [$v['id'] => $v['name']];}, $data);
$result = array_merge(...$result);
Nach dem Login kopieren

Der obige Code implementiert eine anonyme Funktion, die die Elemente im zweidimensionalen Array in ein neues Array verarbeitet. Der Schlüssel des Arrays ist „id“. und der Schlüssel Der Wert ist „Name“. Dadurch wird ein zweidimensionales Array in ein Array umgewandelt, das mehrere eindimensionale Arrays enthält.

Als nächstes verwenden wir die Funktion array_merge, um mehrere eindimensionale Arrays zu einem eindimensionalen Array zusammenzuführen. Zu diesem Zeitpunkt enthält das neue eindimensionale Array nicht nur die ursprünglichen Schlüsselwerte, sondern auch die redundanten Indexwerte. Wir verwenden den neuen „Expand-Operator (...)“ in PHP5.6, um redundante Indexwerte zu entfernen und das gewünschte eindimensionale Array zu erhalten.

Schließlich ist der Inhalt in $result:

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Methode 3: Verwenden Sie die Funktion array_reduce

Mit der Funktion array_reduce können auch zwei erreicht werden: Anforderungen für die Konvertierung dimensionaler Arrays für eindimensionale Arrays. Der Implementierungscode lautet wie folgt:

$result = array_reduce($data, function($carry, $item){
    $carry[$item['id']] = $item['name'];
    return $carry;
}, array());
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion array_reduce, um jedes Element im $data-Array von links nach rechts zu einem neuen Einzelwert „zusammenzuführen“. Der Anfangswert ist ein leeres Array.

In jeder Iteration verwenden wir den Schlüssel „id“ des Arrays $item als Schlüssel des eindimensionalen Arrays und den Schlüssel „name“ des Arrays $item als Schlüssel des eindimensionales Array und im $carry-Array gespeichert. Letztendlich ist der Inhalt von $carry das eindimensionale Array, das wir wollen.

Schließlich ist der Inhalt in $result:

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Anwendungsszenario

Das Konvertieren eines zweidimensionalen Arrays in ein eindimensionales Array ist in Daten üblich Verarbeitungsszenarien. Beispielsweise kann die Ergebnismenge, die wir aus der Datenbank abfragen, ein zweidimensionales Array sein, in dem wir nur eine bestimmte Spalte als eindimensionales Array benötigen. In diesem Fall müssen wir das zweidimensionale Array in ein umwandeln eindimensionales Array.

Gleichzeitig ist es bei der logischen Verarbeitung manchmal erforderlich, ein komplexes zweidimensionales Array in ein eindimensionales Array zu vereinfachen, um die Datenüberprüfung und -verarbeitung zu erleichtern.

Zusammenfassung

In diesem Artikel werden drei Möglichkeiten zum Konvertieren eines zweidimensionalen Arrays in ein eindimensionales Array vorgestellt: Verwendung von Schleifendurchlauf, Verwendung der Funktionen array_map und array_column und Verwendung von array_reduce-Funktion. Jede Methode verfügt über eigene Implementierungsmethoden und Vorteile und kann je nach Szenario und Bedarf ausgewählt und verwendet werden. Wenn Sie diese Methoden verstehen und beherrschen, können Sie effiziente, prägnante und elegante PHP-Programme schreiben.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein zweidimensionales Array in ein eindimensionales Array in PHP. 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