2 Stimmen

Php string - Muster im String verwenden, um ihn in ein Array aufzuteilen

Ich habe einen String, der so aussieht:

$string = "Item 1|Item 2|Item 3|Item 4|Item 5"

Was ist der beste Weg, um durch diesen String zu iterieren und Duplikate zu entfernen? Beispielsweise sollte er wissen, dass jeder zu vergleichende Teilcode zwischen den "|" Zeichen liegt.

Es würde Item1 auswählen und den Rest des Strings mit diesem Item mit preg_replace() ersetzen. Dann würde es das nächste Item (Item2) auswählen und den restlichen String mit diesem Item mit preg_replace() ersetzen.

Der knifflige Teil ist, wenn Item 1 == Item 2 ist. Dann wird der Algorithmus Item 2 ersetzen und Item 3 wird das nächste zu betrachtende Item sein.

Ich habe ein paar Methoden ausprobiert, aber nichts funktioniert. Irgendwelche Ideen? Danke!

6voto

Michael Berkowski Punkte 260923

Wenn ich das richtig verstehe, ignorieren Sie all Ihre Sachen über preg_replace() wenn Sie wirklich nur Duplikate entfernen möchten, verwenden Sie dann einige Array-Operationen.

explode() es auf das | in ein Array. Filtern Sie es mit array_unique() und implode() machen Sie es wieder zu einer durch Pipe getrennten Zeichenfolge:

$array = explode("|", "Element 1|Element 2|Element 3|Element 4|Element 5");
$unique = array_unique($array);
implode("|", $unique);

4voto

brian_d Punkte 10944
$items = explode('|',$string);
$unique_items = array_unique($items);
$unique_string = implode('|', $unique_items);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X