array_count_values ​​многомерного массива?

Я много раз искал этот вопрос. Но я не мог найти подходящего решения нигде. Точно так же, как вы делаете array_count_values() для одномерного массива, что вы делаете для многомерного массива, если вам нужен подобный тип решения?

Например-

 Array ( [0] => Array ( [07/11] => 134 ) [1] => Array ( [07/11] => 134 ) [2] => Array ( [07/11] => 145 ) [3] => Array ( [07/11] => 145 ) [4] => Array ( [07/12] => 134 ) [5] => Array ( [07/12] => 99 ) ) 

Результат, который я хочу,

 Date: 07/11, ID: 134, Count: 2 Date: 07/11, ID: 145, Count: 2 Date: 07/12, ID: 135, Count: 1 Date: 07/12, ID: 99, Count: 1 

Как мне это сделать?

Используя переменную $arr для вашего массива, вы можете сделать это:

 $out = array(); foreach ($arr as $key => $value){ foreach ($value as $key2 => $value2){ $index = $key2.'-'.$value2; if (array_key_exists($index, $out)){ $out[$index]++; } else { $out[$index] = 1; } } } var_dump($out); 

Вывод:

 Array ( [07/11-134] => 2 [07/11-145] => 2 [07/12-134] => 1 [07/12-99] => 1 ) 

Вот еще одна версия, которая производит его как многомерный массив:

 $out = array(); foreach ($arr as $key => $value){ foreach ($value as $key2 => $value2){ if (array_key_exists($key2, $out) && array_key_exists($value2, $out[$key2])){ $out[$key2][$value2]++; } else { $out[$key2][$value2] = 1; } } } 

Вывод:

 Array ( [07/11] => Array ( [134] => 2 [145] => 2 ) [07/12] => Array ( [134] => 1 [99] => 1 ) ) 
 <?php $array = array(array('07/11' => '134'), array('07/11' => '134'), array('07/12' => '145')); $count = array(); foreach ($array as $val) { foreach ($val as $key => $subval) { $count[$key]++; } } print_r($count); 

На вашем месте я бы изменил структуру массива данных. В твоем случае:

 Array( [07/11] => Array ( [0] => 134, [1] => 134, [2] => 145, [3] => 145, ... ) )