次のような配列があります。
$numbers = array("332467323232", "750327430375", "332503248632", ...);
配列内のすべての文字列に数字32 (またはその他の数字) が表示される回数を取得したいと考えています。
例:
$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));
たとえば、正規表現は必要ない場合があります。
$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
// )
これはあなたが探していることをするはずです。php.net の substr_count