2013-03-13 4 views
5

Ich möchte herausfinden, wie viele eindeutige Zeichen eine Zeichenfolge enthält. Beispiele:PHP: Finden Sie die Anzahl der verschiedenen Buchstaben in einer Zeichenfolge

"66615888" contains 4 digits (6 1 5 8). 
"12333333345" contains 5 digits (1 2 3 4 5). 
+0

Ist Ihnen die Reihenfolge wichtig, in der die Nummern (Zeichen) zurückgegeben werden? – Floris

+0

Die Frage, die gestellt wird, fragt nach "wie vielen" einzigartigen Zeichen, anstatt nach einer Liste von ihnen. – merlin2011

+0

@Floris ich nicht, brauche nur "wie viele". – jlee

Antwort

11
echo count(array_unique(str_split('66615888'))); 

Demo

Dokumente:

  1. count() - Zählen die Anzahl der Elemente in einem Array
  2. array_unique() - Die einzigartigen Elemente in einem Array
  3. str_split() - Sp einen String in ein Array beleuchtet Sie
+0

es funktioniert, danke ~ – jlee

+0

+1 Aber lassen Sie mich fragen: Wissen Sie, welche besser funktioniert: Ihre Lösung oder merlin2011/NikiC? – insertusernamehere

+0

@insertusernamehere Ich weiß es nicht. welches ist besser? – jlee

7

count_chars gibt eine Karte von char => frequency, die Sie mit mit array_sum resümieren kann:

$count = array_sum(count_chars($str)); 

Alternativ können Sie den 3 Modus für count_chars verwenden, die Ihnen ein String alle eindeutigen Zeichen enthält:

$count = strlen(count_chars($str, 3)); 
+0

Diese Methode funktioniert auch. Vielen Dank. – jlee

+0

Ich bevorzuge diese Antwort über die "akzeptierte".Das Erstellen eines Arrays aus allen Elementen ist eine Menge Overhead - 'count_chars (, 3)' ist der direkteste Weg, um alle einzigartigen Charaktere zu bekommen, und das 'strlen' davon ist die Zählung - was gefragt wurde. Es bekommt meine Stimme. – Floris

1

PHP hat eine Funktion, die Zeichen zählt.

$data = "foobar"; 
$uniqued = count_chars($data, 3); 
$count = strlen($uniqued); 

Siehe Dokumentation here.

0

können Sie das folgende Skript verwenden:

<?php 
    $str1='66615888'; 
    $str2='12333333345'; 
    echo 'The number of unique characters in "'.$str1.'" is: '.strlen(count_chars($str1,3)).' ('.count_chars($str1,3).')'.'<br><br>'; 
    echo 'The number of unique characters in "'.$str2.'" is: '.strlen(count_chars($str2,3)).' ('.count_chars($str2,3).')'.'<br><br>'; 
?> 

Ausgang:

Die Anzahl der eindeutigen Zeichen in "66615888" ist: 4 (1568)

Die Anzahl der eindeutigen Zeichen in " 12333333345 "ist: 5 (12345)


Hier PHP Zeichenfolge Funktion count_chars() im Modus 3 erzeugt ein Array mit allen eindeutigen Zeichen.

PHP-Zeichenfolge-Funktion strlen() erzeugt Gesamtzahl der eindeutigen Zeichen vorhanden.

Verwandte Themen