配列中の指定された値を持つ値の個数を数える
このような配列があるとします。
$array = array('', '', 'other', '', 'other');
指定された値(例では空白)を持つ数を数えるにはどうしたらよいですか?
そして、それを効率的に行うには?(数百の要素を持つ十数個の配列について) この例はタイムアウトします(30秒以上)。
function without($array) {
$counter = 0;
for($i = 0, $e = count($array); $i < $e; $i++) {
if(empty($array[$i])) {
$counter += 1;
}
}
return $counter;
}
この場合、空白の要素数は3です。
22
3
array_count _values]1を使って、すべてをカウントした配列を取得するのはどうでしょうか。
ただ、アイディアとしては、
array_keys( $myArray, "" )
を使って、オプションの第二パラメータで検索値を指定することができます。そして、結果を数えます。この方法がより速いかどうかは分かりませんが、試してみる価値はあると思います。