0

次のような配列があります。

$numbers = array("332467323232", "750327430375", "332503248632", ...);

配列内のすべての文字列に数字32 (またはその他の数字) が表示される回数を取得したいと考えています。

例:

$times = array(4, 1, 3, ...);
4

2 に答える 2

4

正解:

$times=array_map(function($str) { return substr_count($str, "32"); }, $numbers);

最初の回答 (間違っています。質問を読み違えています。申し訳ありません!):

正規表現を使用しないワンライナーを次に示します。

echo array_sum(array_map(
                  function($str) { return substr_count($str, "32"); },
                  $numbers));
于 2013-05-03T13:32:20.453 に答える
1

たとえば、正規表現は必要ない場合があります。

$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

于 2013-05-03T13:37:09.620 に答える