Heim  >  Artikel  >  Backend-Entwicklung  >  So entfernen Sie Duplikate aus einem sortierten Array in PHP

So entfernen Sie Duplikate aus einem sortierten Array in PHP

PHPz
PHPzOriginal
2023-04-26 10:28:09495Durchsuche

In der PHP-Entwicklung ist es oft notwendig, Arrays zu sortieren, aber im sortierten Array können doppelte Elemente erscheinen. Zu diesem Zeitpunkt müssen wir Code schreiben, um doppelte Elemente aus dem Array zu löschen. In diesem Artikel erfahren Sie, wie Sie Duplikate aus einem sortierten Array in PHP entfernen.

1. Verwenden Sie die Funktion array_unique()

Die Funktion array_unique() kann doppelte Elemente im Array entfernen. Es ist jedoch zu beachten, dass diese Funktion nur unsortierte Arrays verarbeiten kann, daher müssen wir sort() oder Funktionen verwenden wie zum Beispiel rsort() Arrays sortieren.

Beispielcode:

$arr = array(1, 2, 2, 3, 4, 4, 5);
sort($arr);//排序
$newArr = array_unique($arr);//去重
print_r($newArr);

Ausgabeergebnis:

Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

Wenn Sie die Schlüsselnamen des ursprünglichen Arrays beibehalten müssen, können Sie den zweiten Parameter der Funktion array_unique() verwenden:

$arr = array('a' => 1, 'b' => 2, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 4, 'g' => 5);
asort($arr);//排序
$newArr = array_unique($arr, SORT_REGULAR);//去重
print_r($newArr);

Ausgabeergebnis:

Array ( [a] => 1 [b] => 2 [d] => 3 [e] => 4 [g] => 5 )

2 . Durchlaufen Sie das Array, um Duplikate zu entfernen.

Eine andere Möglichkeit, Duplikate in einem sortierten Array zu entfernen, besteht darin, das Array zu durchlaufen und, wenn ein doppeltes Element gefunden wird, die Funktion unset() zu verwenden, um das Element aus dem Array zu entfernen.

Beispielcode:

$arr = array(1, 2, 2, 3, 4, 4, 5);
sort($arr);//排序
for($i=0;$i<count($arr)-1;$i++){
    if($arr[$i] == $arr[$i+1]){
        unset($arr[$i+1]);//删除重复元素
    }
}
print_r($arr);

Ausgabeergebnis:

Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

Es ist zu beachten, dass die Verwendung dieser Methode zum Löschen von Elementen dazu führt, dass der Index des ursprünglichen Arrays neu angeordnet wird. Sie müssen daher den Index von $i+1 verwenden, wenn Löschen, sonst wird es übersehen. Entfernen Sie doppelte Elemente.

3. Verwenden Sie die Array-Rekursion zum Deduplizieren.

Wenn das Array mehrdimensional ist, können wir die Rekursion zum Deduplizieren verwenden.

Beispielcode:

$arr = array(
    1,
    2,
    2,
    array(
        3,
        4,
        4,
        5,
        array(
            6,
            7,
            7,
        ),
    ),
);
sort($arr);//排序
function uniqueArray($arr){
    foreach($arr as $k => $v){
        if(is_array($v)){
            $arr[$k] = uniqueArray($v);
        }
    }
    return array_unique($arr);
}
$newArr = uniqueArray($arr);//递归去重
print_r($newArr);

Ausgabeergebnis:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [6] => 5 [9] => 6 [10] => 7 )

Diese Methode kann mehrdimensionale Arrays deduplizieren und die Struktur des ursprünglichen Arrays beibehalten.

Fazit

In der PHP-Entwicklung ist das Löschen doppelter Elemente in einem sortierten Array ein sehr häufiger Vorgang. In diesem Artikel werden drei Methoden vorgestellt: die Verwendung der Funktion array_unique(), das Durchlaufen des zu löschenden Arrays und die rekursive Deduplizierung des Arrays. Verschiedene Methoden eignen sich für unterschiedliche Situationen, und Sie können je nach Bedarf die Methode auswählen, die zu Ihnen passt.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Duplikate aus einem sortierten Array in PHP. 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