-3

PHP 配列があり、Zend_Debug を使用して以下にダンプしました。

    $ids = array(13) {
  [0] => string(1) "7"
  [1] => string(1) "8"
  [2] => string(1) "2"
  [3] => string(1) "7"
  [4] => string(1) "8"
  [5] => string(1) "4"
  [6] => string(1) "7"
  [7] => string(1) "3"
  [8] => string(1) "7"
  [9] => string(1) "8"
  [10] => string(1) "3"
  [11] => string(1) "7"
  [12] => string(1) "4"
}

配列内で各数値が何回発生するかを取得し、それを配列に出力しようとしています。

使用してみarray_count_values($ids)ましたが、最も発生した順に出力されますが、発生した合計回数を取得できません。以下の出力が得られます。

    array(5) {
  [7] => int(5)
  [8] => int(3)
  [2] => int(1)
  [4] => int(2)
  [3] => int(2)
}

上記の配列からわかるように、7 は 5 回発生しますが、配列をループするとアクセスできます。

何かご意見は?

乾杯

J.

4

2 に答える 2

4

次のようにして、必要なデータにアクセスできます。

$ids = array( ...);

$array = array_count_values( $ids);
foreach( $array as $number => $times_number_occurred) {
    echo $number . ' occurred ' . $times_number_occurred . ' times!';
}

出力:

7 occurred 5 times!
8 occurred 3 times!
2 occurred 1 times!
4 occurred 2 times!
3 occurred 2 times!

デモ

于 2012-06-04T13:05:52.010 に答える
1

コンストラクトを使用しforeachて、結果の配列をループします。

$res = array_count_values($ids);

foreach( $res as $value => $count ) {
  // your code here
  echo "The value ".$value." appeared ".$count." times in the array";
}
于 2012-06-04T13:05:58.613 に答える