计算多阵列费率

Im having troubles counting this. I want to count all rates than belongs to id_image.

Maybe like key = id_image and value = tot count, id tried with array_count_values, but i cant use it normally when its multi :-S

Array
(
[0] => Array
    (
        [id_image] => 12
        [rate] => 4
    )

[1] => Array
    (
        [id_image] => 13
        [rate] => 4
    )

[2] => Array
    (
        [id_image] => 14
        [rate] => 3
    )

[3] => Array
    (
        [id_image] => 13
        [rate] => 4
    )

[4] => Array
    (
        [id_image] => 12
        [rate] => 5
    )

[5] => Array
    (
        [id_image] => 12
        [rate] => 4
    )

)
// test array
$arr = array(
  0 => array(
    'id_image' => 1,
    'rate' => 3
  ),
  1 => array(
    'id_image' => 2,
    'rate' => 8
  ),
  2 => array(
    'id_image' => 3,
    'rate' => 4
  ),
  3 => array(
    'id_image' => 1,
    'rate' => 2
  ),
  4 => array(
    'id_image' => 3,
    'rate' => 2
  )
);

// put the length in a var so we don't keep calling count();
$length = count($arr);

// the new array that'll hold the sum of the rates
$totals = array();

// iterate through the test array
for ($i = 0; $i < $length; ++$i) {
  // check if $totals already contains data for the specified id_image
  if (isset($totals[$arr[$i]['id_image']])) {
    // if so, add data
    $totals[$arr[$i]['id_image']] += $arr[$i]['rate'];
  } else {
    // if not so, set data
    $totals[$arr[$i]['id_image']] = $arr[$i]['rate'];
  }
}

var_dump($totals);

Example