我有一個數組,看起來像這樣:找到多少次陣列內部存在一些
$numbers = array("332467323232", "750327430375", "332503248632", ...);
我想獲得的次數,數量數量(或任何其他數字)顯示在我的數組中的每個字符串中。
例子:
$times = array(4, 1, 3, ...);
我有一個數組,看起來像這樣:找到多少次陣列內部存在一些
$numbers = array("332467323232", "750327430375", "332503248632", ...);
我想獲得的次數,數量數量(或任何其他數字)顯示在我的數組中的每個字符串中。
例子:
$times = array(4, 1, 3, ...);
正確答案:
$times=array_map(function($str) { return substr_count($str, "32"); }, $numbers);
最初的回答(錯,誤解的問題,對不起!):
這裏是一個一個班輪這不使用正則表達式:
echo array_sum(array_map(
function($str) { return substr_count($str, "32"); },
$numbers));
我接受你的答案,但我沒有正確地問我的問題...我正在尋找32出現的時間數假設我的數組中的字符串是除以逗號。進出口。 「32,53」給出了1個外觀,但給出了「437」。我會發佈一個適當的問題。 Thx爲您提供幫助! – 2013-05-03 13:56:50
您可能不需要正則表達式,例如:
$numbers = array(
32323232, # 4
12233232, # 2
12314232, # 1
12349085, # 0
);
$result = array();
foreach($numbers as $num){
$result[] = substr_count("$num", '32');
}
print_r($result);
// Array
// (
// [0] => 4
// [1] => 2
// [2] => 1
// [3] => 0
//)
這應該做你要找的東西。 substr_count on php.net
有。是否有一個原因,你必須使用正則表達式? – Jon 2013-05-03 13:29:24
我可以使用PHP來實現,但是,正則表達式是一個更短,更乾淨的方法。 – 2013-05-03 13:31:47
我不能說我完全理解你想在這裏使用正則表達式。 3245是否意味着數字32會出現?這是否也意味着你想要計算324,3245,245,45等?正則表達式是一種匹配,驗證和替換的方式,但計數並不是真正的強項。 – melwil 2013-05-03 13:31:51