So entfernen Sie Duplikate aus einem sortierten Array in PHP

PHPz
Freigeben: 2023-04-26 14:12:23
Original
543 Leute haben es durchsucht

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);
Nach dem Login kopieren

Ausgabeergebnis:

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

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);
Nach dem Login kopieren

Ausgabeergebnis:

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

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);
Nach dem Login kopieren

Ausgabeergebnis:

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

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);
Nach dem Login kopieren

Ausgabeergebnis:

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

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!

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