Heim > Backend-Entwicklung > PHP-Problem > PHP implementiert die Zusammenführung von Mehrheitsgruppen

PHP implementiert die Zusammenführung von Mehrheitsgruppen

WBOY
Freigeben: 2023-05-07 13:30:11
Original
1245 Leute haben es durchsucht

Bei der PHP-Entwicklung kommt es häufig vor, dass mehrere Arrays zusammengeführt werden müssen. Das zusammengeführte Array muss alle Elemente im ursprünglichen Array enthalten und die Beziehung jedes Schlüssel-Wert-Paares beibehalten. In diesem Artikel wird erläutert, wie Sie die Zusammenführung von Mehrheitsgruppen mithilfe von PHP erreichen.

1. array_merge-Funktion

PHPs integrierte array_merge-Funktion kann zwei oder mehr Arrays zusammenführen. Wenn es dieselben Schlüsselnamen gibt, werden diese durch die späteren Werte überschrieben vorherige Werte.

Der Beispielcode lautet wie folgt:

$arr1 = array('a', 'b', 'c');
$arr2 = array('d', 'e', 'f');
$arr3 = array('g', 'h', 'i');

$newArr = array_merge($arr1, $arr2, $arr3);

print_r($newArr);
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => g
    [7] => h
    [8] => i
)
Nach dem Login kopieren

2. Benutzerdefinierte Funktion

Wenn derselbe Schlüsselname in mehreren zusammenzuführenden Arrays vorhanden ist, überschreibt die Funktion array_merge den vorherigen Wert, was der Fall ist nicht den Anforderungen genügen. Um dieses Problem zu lösen, können Sie eine Funktion anpassen, um eine Zusammenführung von Mehrheitskombinationen zu erreichen.

Die Logik der benutzerdefinierten Funktion lautet: Alle Schlüssel-Wert-Paare des Arrays durchlaufen, den Wert desselben Schlüsselnamens in einem neuen Array speichern. Wenn derselbe Schlüsselname vorhanden ist, wird der Wert in einem Index als Schlüssel gespeichert Namens-Array. Wenn es nicht existiert, wird der Wert in einem neuen Array-Element gespeichert.

Der Beispielcode lautet wie folgt:

function multiArrayMerge(...$arrays)
{
    $result = array();
    foreach ($arrays as $array) {
        foreach ($array as $key => $value) {
            if (is_int($key)) {
                $result[] = $value;
            } else {
                if (array_key_exists($key, $result) && is_array($value)) {
                    $result[$key] = multiArrayMerge($result[$key], $value);
                } else {
                    $result[$key] = $value;
                }
            }
        }
    }
    return $result;
}
Nach dem Login kopieren

Beispiel für den Aufruf mehrerer Array-Zusammenführungsfunktionen:

$arr1 = array(
    'a' => 1,
    'b' => array(
        'c' => 2,
        'd' => array(
            'e' => 3
        )
    )
);

$arr2 = array(
    'a' => 4,
    'b' => array(
        'c' => 5,
        'd' => array(
            'f' => 6
        )
    )
);

$arr3 = array(
    'g' => 7,
    'h' => array(
        'i' => 8
    )
);

$result = multiArrayMerge($arr1, $arr2, $arr3);

print_r($result);
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array
(
    [a] => 4
    [b] => Array
        (
            [c] => 5
            [d] => Array
                (
                    [e] => 3
                    [f] => 6
                )

        )

    [g] => 7
    [h] => Array
        (
            [i] => 8
        )

)
Nach dem Login kopieren

3. Hinweise

Wenn Sie benutzerdefinierte Funktionen verwenden, um eine Mehrheitszusammenführung zu erreichen, müssen Sie aufpassen zu einigen Problemen:

1. Wenn derselbe Schlüsselname vorhanden ist, kann das Zusammenführen der Werte verschiedener Arrays zu Datenkonflikten führen, die gemäß einer bestimmten Geschäftslogik behandelt werden müssen.

2. Um eine unendliche Rekursion der Funktion zu verhindern, ist es notwendig, den Wert im Array zu beurteilen. Wenn es sich um ein Array handelt, führen Sie eine rekursive Operation aus, andernfalls wird der Wert direkt im Ergebnisarray gespeichert.

3. Die drei Punkte (...) vor den Parametern kennzeichnen eine Parameterliste variabler Länge, die eine beliebige Anzahl von Parametern aufnehmen kann. Die Parameterliste wird zur Verwendung automatisch in ein Array umgewandelt.

4. Zusammenfassung

PHP bietet die Funktion array_merge zum Zusammenführen von Arrays. Wenn jedoch die Schlüssel-Wert-Paar-Beziehung erhalten bleiben muss, besteht das Problem, dass Werte mit demselben Schlüsselnamen überschrieben werden. In diesem Artikel wird eine Methode zum Implementieren einer benutzerdefinierten Funktion vorgestellt, die zum Zusammenführen mehrerer Arrays geeignet ist und die Schlüssel-Wert-Paar-Beziehung beibehalten muss. Bei der Verwendung müssen Sie auf das Problem von Datenkonflikten mit denselben Schlüsselnamen achten.

Das obige ist der detaillierte Inhalt vonPHP implementiert die Zusammenführung von Mehrheitsgruppen. 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