Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich zwei 2D-Arrays in PHP basierend auf einem gemeinsamen Spaltenwert effizient zusammenführen?

Wie kann ich zwei 2D-Arrays in PHP basierend auf einem gemeinsamen Spaltenwert effizient zusammenführen?

DDD
DDDOriginal
2024-12-11 08:29:11404Durchsuche

How Can I Efficiently Merge Two 2D Arrays in PHP Based on a Shared Column Value?

Zusammenführen von 2D-Arrays nach gemeinsamem Spaltenwert

Das Kombinieren zweier mehrdimensionaler Arrays mit gemeinsamen Werten kann eine häufige Programmieraufgabe sein. Während traditionelle iterative Ansätze mit verschachtelten Schleifen und bedingten Prüfungen zuverlässig sind, können sie oft zu ausführlichem und möglicherweise ineffizientem Code führen. In diesem Artikel werden elegante Lösungen unter Verwendung nativer PHP-Array-Funktionen untersucht.

Betrachten Sie die folgenden zwei Arrays:

$array1 = [
    ['rank' => '579', 'id' => '1'],
    ['rank' => '251', 'id' => '2'],
];

$array2 = [
    ['size' => 'S', 'status' => 'A', 'id' => '1'],
    ['size' => 'L', 'status' => 'A', 'id' => '2'],
];

Das Ziel besteht darin, diese Arrays basierend auf ihren gemeinsamen „id“-Werten zusammenzuführen und so die zu erzeugen folgendes Ergebnis:

[
    ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'],
    ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'],
]

Lösung 1: array_merge_recursive

Die PHP-Funktion array_merge_recursive() ermöglicht das Zusammenführen von Arrays und die rekursive Kombination von Elementen mit passenden Schlüsseln.

$mergedArray = array_merge_recursive($array1, $array2);

Diese Lösung ist unkompliziert und liefert das gewünschte Ergebnis, ohne dass dies erforderlich ist zusätzliche Schleifen oder Bedingungen.

Lösung 2: Benutzerdefiniert Funktion

Alternativ kann eine benutzerdefinierte Funktion erstellt werden, um die Zusammenführung möglicherweise effizienter durchzuführen:

function my_array_merge(array &$array1, array &$array2) {
    $result = [];
    foreach ($array1 as $key => &$value) {
        $result[$key] = array_merge($value, $array2[$key]);
    }
    return $result;
}

$mergedArray = my_array_merge($array1, $array2);

Diese Funktion durchläuft das erste Array und führt jedes Element mit zusammen sein entsprechendes Element aus dem zweiten Array basierend auf den übereinstimmenden Schlüsseln.

Beide Lösungen bieten effektive Möglichkeiten, 2D-Arrays basierend auf gemeinsamen Spaltenwerten zusammenzuführen. Der gewählte spezifische Ansatz kann von Faktoren wie Leistungsanforderungen oder Code-Lesbarkeitspräferenzen abhängen.

Das obige ist der detaillierte Inhalt vonWie kann ich zwei 2D-Arrays in PHP basierend auf einem gemeinsamen Spaltenwert effizient zusammenführen?. 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