2010-05-07 40 views
0

好的我需要弄清楚如何計算在下面的例子中有多少個數字。拆分一個數組,不工作

07000000000,07000000001,07000000002,07000000003,07000000004等等

我曾嘗試以下PHP函數。

爆炸,內爆,計數,foreach和for。

他們似乎都沒有工作,我現在真的卡住了。

任何幫助將被appriciated。

凱爾

+6

僅供參考,我不回答,因爲你不給予好評或接受任何給出答案。我爲什麼要打擾? – Yacoby 2010-05-07 14:00:12

回答

3

簡單的解決方案:

echo count(explode(',', $string)); 

但你可能會與一些正則表達式獲得更好的性能,通過使用preg_match計數的比賽,例如 - 它會返回匹配的數量

echo preg_match('/,/', $string); 
+0

嗨knittl, 的代碼你建議的回報21. +1的回答雖然 – 2010-05-07 14:15:18

+0

感謝您的第一個: 回聲計數(爆炸( '',$字符串)); 固定它。 – 2010-05-07 14:19:20

+0

那麼你在你的文本中有21個逗號 – knittl 2010-05-07 14:24:07

0

嗯,這可能不是這樣做的-best-方式,但...

你能不能重複對字符串的每個字符和計數的逗號的數量,和添加1?我的意思是,這要求將字符串正確格式化爲數字,數字,數字,但如果您可以驗證它是以這種方式格式化的,則可以使其正常工作。

同樣,這可能不是最好的方式(我不是一個PHP傢伙),也許有更好的方法。但是,如果你所做的沒有工作,也許會這樣。

使用爆炸,數
+0

我剛開始試過,我們正在討論可能有10,000個值的數組。 它似乎沒有工作。 – 2010-05-07 14:16:59

+0

好吧,如果你仔細想想,沒有通過整個陣列就無法分辨(除非你保持跟蹤陣列的構建,當然。) 如果你從概念上看它,你怎麼知道如果如果你沒有通過整個陣列,你檢查了一切嗎?現在,如果該支票包裹在一個很好的小功能中,那太棒了 - 將其抽象化,真棒。但它仍然需要一段時間。 很高興看到你找到答案! – corsiKa 2010-05-07 14:47:44

2

你有沒有像這樣寫你的爆炸?

$array_of_numbers = explode(',', $string_of_numbers); 
$count_of_numbers = count($array_of_numbers); 
+0

謝謝Gleelmo, 當我這樣做時,你建議它總是打印24。 – 2010-05-07 14:10:38

0
$count = substr_count($string_of_numbers, ',') + 1;