2016-08-08 26 views
-1

Ich habe eine Zeichenfolge wie folgt: $ str = 'Auto, Hund, Haus, Hund, Hund, Haus, Schüssel';Wie füge ich einer doppelten Zeichenfolge eine Zahl hinzu?

Wie kann ich eine Ausgabe wie folgt:

 
dog #1 
dog #2 
dog #3 
car 
house #1 
house #2 
dish 

Weil ich die duplizierte Strings machen wollen durch Hinzufügen einer Nummer eine eindeutige Zeichenfolge zu sein.

Vielen Dank im Voraus!

+1

Was haben Sie bisher versucht? Bitte posten Sie Ihre Versuche auch. –

+1

Willkommen bei SO. Bitte lesen Sie [Welche Themen kann ich fragen] (http://stackoverflow.com/help/on-topic) und [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to -ask) Und [die perfekte Frage] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) Und wie man ein [minimales, vollständiges und überprüfbares Beispiel] erstellt (http://stackoverflow.com/help/mcve) SO ist ** nicht eine kostenlose Codierung oder Code-Konvertierung oder Debugging oder Tutorial oder Bibliothek Finding-Service ** Sie müssen auch zeigen, dass Sie einige Anstrengungen unternommen haben, um zu lösen dein eigenes Problem. – RiggsFolly

Antwort

2

Die Lösung mit str_word_count und array_count_values Funktionen:

$str = 'car, dog, house, dog, dog, house, dish'; 
$counts = array_count_values(str_word_count($str, 1)); 

foreach ($counts as $name => $c) { 
    if ($c == 1) { 
     echo $name . PHP_EOL; 
    } else { 
     for ($i = 1; $i <= $c; $i++) echo $name . ' #'. $i . PHP_EOL; 
    } 
} 

Der Ausgang:

car 
dog #1 
dog #2 
dog #3 
house #1 
house #2 
dish