1

次の配列があります。これは、より大きな配列にネストされた配列のロードです。

Array
(
    [0] => Array
        (
            [vote_for] => 15
        )

    [1] => Array
        (
            [vote_for] => 15
        )

    [2] => Array
        (
            [vote_for] => 15
        )

    [3] => Array
        (
            [vote_for] => 5
        )

    [4] => Array
        (
            [vote_for] => 5
        )

    [5] => Array
        (
            [vote_for] => 2
        )

    [6] => Array
        (
            [vote_for] => 2
        )

    [7] => Array
        (
            [vote_for] => 2
        )

    [8] => Array
        (
            [vote_for] => 2
        )

    [9] => Array
        (
            [vote_for] => 2
        )

    [10] => Array
        (
            [vote_for] => 2
        )

    [11] => Array
        (
            [vote_for] => 2
        )

    [12] => Array
        (
            [vote_for] => 2
        )

    [13] => Array
        (
            [vote_for] => 2
        )

    [14] => Array
        (
            [vote_for] => 2
        )

)

15 => 3この配列で array_count_values と同等の処理を行い、5 => 2とを取得したいと考えています2 => 10。これを行うには、配列のネストを解除するにはどうすればよいですか?

4

2 に答える 2

2

カウントするように配列を再構成してみてください。

$count_array = array();
foreach ($arr as $v) {
   $count_array[] = $v['vote_for'];
}

// Now get the counts
$the_count = array_count_values($count_array);
于 2012-07-29T02:50:46.407 に答える
1

配列マップもこれでうまくいくと思います

$count_array = array_map(function($item) { return $item['vote_for']; }, $array);
$the_count = array_count_values($count_array);
于 2012-07-29T03:17:17.587 に答える