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

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

DDD
Freigeben: 2024-12-16 07:31:15
Original
451 Leute haben es durchsucht

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

Zusammenführen von 2D-Arrays basierend auf dem gemeinsamen Spaltenwert

Für die angegebenen 2D-Arrays:

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

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

Zusammenführen mit nativen PHP-Array-Funktionen

Um die Arrays basierend zusammenzuführen In der gemeinsamen Spalte „id“ können Sie die Funktion array_merge_recursive() nutzen. Es führt rekursiv Elemente aus den Eingabearrays zusammen und behält dabei die Schlüssel bei:

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

print_r($merged);
// Output:
// Array
// (
//     [0] => Array
//         (
//             [rank] => 579
//             [id] => 1
//             [size] => S
//             [status] => A
//         )
//     [1] => Array
//         (
//             [rank] => 251
//             [id] => 2
//             [size] => L
//             [status] => A
//         )
// )
Nach dem Login kopieren

Benutzerdefinierte Zusammenführungsfunktion

Alternativ können Sie Ihre eigene Funktion zum Zusammenführen von Arrays basierend auf a definieren angegebener Schlüssel:

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

$merged = my_array_merge($array1, $array2, 'id');

print_r($merged);
// Output:
// Array
// (
//     [1] => Array
//         (
//             [rank] => 579
//             [id] => 1
//             [size] => S
//             [status] => A
//         )
//     [2] => Array
//         (
//             [rank] => 251
//             [id] => 2
//             [size] => L
//             [status] => A
//         )
// )
Nach dem Login kopieren

Erwägen Sie die Verwendung von my_array_merge(), wenn Sie mit großen arbeiten Arrays, da es array_merge_recursive() potenziell übertreffen kann.

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