2012-12-29 23 views
-7

我有串找到不同的數字PHP

$ a = '123456789';

它是什麼公式,所以它可以給出的結果,在字符串中有9個不同的數字。

如果我有

$一個= '111222333444';

所以結果應該是

+2

忘了PHP。你能解釋一下如何用筆和紙得到答案嗎?如果你能做到這一點,那麼PHP/Python/C++/Go應該很容易就能實現。 – Johnsyweb

+0

不確定你在問什麼......你能更清楚一點嗎? –

+0

@TerryHarvey給定字符串中有多少個唯一字符? – mcalex

回答

4
$str = '123456789'; 
$parts = str_split($str); 
$unique = array_unique($parts); 
$uniqueCount = count($unique); 
+1

直到你發佈這個,我才明白這個問題。 +1 –

+0

+1非常好。 –

1
$myString = '1111222334'; 
$uniqueDigits = 0; 
for ($i = 0; $i < 10; $i++) 
    if (FALSE !== strpos($myString, strval($i))) 
     $uniqueDigits++; 

$uniqueDigits值是4

+1

我是唯一一個贊成這個嗎?留下美麗,這是最有效的解決方案... –

+0

找到'FALSE'並用'「$ i」替換'strval()'會更好'繼續''使得它更快非常長的字符串解析。 8) –

+0

@NomikOS「$ i」看起來更好,但你確定使用'continue'會使它更快嗎? – eds

6

寫了一個快速的功能給你:

function unique_chars($string) { 
    return strlen(count_chars($string, 3)); 
} 

用法:

echo unique_chars('111222333444'); 
+1

最佳答案! count_chars() –

+1

+1尊重! –