Heim > Backend-Entwicklung > PHP-Tutorial > Wie entferne ich doppelte Elemente in einem mehrdimensionalen PHP-Array?

Wie entferne ich doppelte Elemente in einem mehrdimensionalen PHP-Array?

WBOY
Freigeben: 2024-04-28 08:06:02
Original
1197 Leute haben es durchsucht

Um doppelte Elemente in mehrdimensionalen PHP-Arrays zu entfernen, können Sie die Funktion array_unique() oder eine benutzerdefinierte rekursive Funktion verwenden. array_unique() verarbeitet das interne Array als Ganzes, während eine benutzerdefinierte rekursive Funktion das Array durchläuft und es Element für Element untersucht. In einem praktischen Anwendungsfall können diese Methoden verwendet werden, um doppelte E-Mail-Adressen zu entfernen, um sicherzustellen, dass nur eine E-Mail an jeden Benutzer gesendet wird.

如何去重多维 PHP 数组中的重复元素?

So entfernen Sie doppelte Elemente in mehrdimensionalen PHP-Arrays

Vorwort

Beim Umgang mit mehrdimensionalen Arrays stoßen Sie manchmal auf das Problem doppelter Elemente. Dies kann zu inkonsistenten Daten und schwierigen Analysen führen. In diesem Artikel werden verschiedene Methoden zum effektiven Entfernen doppelter Elemente aus mehrdimensionalen PHP-Arrays vorgestellt.

Methode

1. Verwenden Sie die Funktion array_unique(). array_unique() 函数

array_unique() 函数可以用来删除一维数组中的重复元素。它接受一个数组作为参数,并返回一个包含唯一元素的新数组。

<?php
$arr = array(
    array(1, 2, 3),
    array(3, 4, 5),
    array(1, 2, 6),
);

$unique_arr = array_unique($arr);
print_r($unique_arr);
?>
Nach dem Login kopieren

输出:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [1] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 5
        )
    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 6
        )
)
Nach dem Login kopieren
Nach dem Login kopieren

在这个例子中,array_unique() 函数并没有删除多维数组中的重复元素。它只是将内部数组作为一个整体来处理,而没有递归地遍历它们。

2. 使用递归函数

为了递归地去除多维数组中的重复元素,我们需要编写一个自定义函数。该函数将遍历数组并逐个元素地检查它们。

<?php
function remove_duplicates($arr) {
    $unique_arr = array();

    foreach ($arr as $sub_arr) {
        if (!in_array($sub_arr, $unique_arr)) {
            $unique_arr[] = $sub_arr;
        }
    }

    return $unique_arr;
}
?>
Nach dem Login kopieren

我们现在可以使用这个函数对多维数组进行去重:

$unique_arr = remove_duplicates($arr);
print_r($unique_arr);
Nach dem Login kopieren

输出:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [1] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 5
        )
    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 6
        )
)
Nach dem Login kopieren
Nach dem Login kopieren

实战案例

假设我们有一个包含用户电子邮件地址的多维数组。我们需要去除重复的电子邮件地址,以确保向每个用户只发送一封邮件。我们可以使用上述方法之一来完成此任务。

使用 array_unique()

Die Funktion array_unique() kann zum Löschen doppelter Elemente in einem eindimensionalen Array verwendet werden . Es akzeptiert ein Array als Argument und gibt ein neues Array mit eindeutigen Elementen zurück.

<?php
$users = array(
    array('email' => 'john@example.com'),
    array('email' => 'mary@example.com'),
    array('email' => 'john@example.com'),
);

$unique_users = array_unique($users, SORT_REGULAR);
print_r($unique_users);
?>
Nach dem Login kopieren
Ausgabe:
<?php
$users = array(
    array('email' => 'john@example.com'),
    array('email' => 'mary@example.com'),
    array('email' => 'john@example.com'),
);

$unique_users = remove_duplicates($users);
print_r($unique_users);
?>
Nach dem Login kopieren

In diesem Beispiel entfernt die Funktion array_unique() keine doppelten Elemente aus dem mehrdimensionalen Array. Es verarbeitet lediglich das innere Array als Ganzes, ohne es rekursiv zu durchlaufen.

🎜2. Rekursive Funktionen verwenden 🎜🎜🎜Um doppelte Elemente rekursiv aus einem mehrdimensionalen Array zu entfernen, müssen wir eine benutzerdefinierte Funktion schreiben. Diese Funktion durchläuft das Array und überprüft es Element für Element. 🎜
Array
(
    [0] => Array
        (
            [email] => john@example.com
        )
    [1] => Array
        (
            [email] => mary@example.com
        )
)
Nach dem Login kopieren
🎜 Mit dieser Funktion können wir jetzt mehrdimensionale Arrays deduplizieren: 🎜rrreee🎜 Ausgabe: 🎜rrreee🎜🎜 Praktisches Beispiel 🎜🎜🎜 Angenommen, wir haben ein mehrdimensionales Array mit Benutzer-E-Mail-Adressen. Wir müssen doppelte E-Mail-Adressen entfernen, um sicherzustellen, dass nur eine E-Mail an jeden Benutzer gesendet wird. Wir können diese Aufgabe mit einer der oben genannten Methoden lösen. 🎜🎜🎜Mit der Funktion array_unique(): 🎜🎜rrreee🎜🎜Mit der rekursiven Funktion: 🎜🎜rrreee🎜Beide Methoden erzeugen die folgende Ausgabe, wobei doppelte E-Mail-Adressen entfernt werden: 🎜rrreee

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Elemente in einem mehrdimensionalen PHP-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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