PHP: подсчитать одинаковые значения в многомерном массиве

Я хочу подсчитать одни и те же значения на самом глубоком / последнем уровне многомерного массива:

Array ( [svote001] => Array ( [0] => 006 [1] => 006 [2] => 007 ) [svote002] => Array ( [0] => 000 [1] => 000 [2] => 000 ) [svote003] => Array ( [0] => 002 [1] => 003 [2] => 001 ) ) 

конвертировано в

 Array ( [svote001] => Array ( [006] => 2 [007] => 1 ) [svote002] => Array ( [000] => 3 ) [svote003] => Array ( [001] => 1 [002] => 1 [003] => 1 ) ) 

Считанные значения также должны сортироваться от высокого к низкому.

 foreach($array as $k => $v) { $result[$k] = array_count_values($v); arsort($result[$k]); } 
  • Прокрутите массив (выставляя ключ) для доступа к каждому внутреннему массиву
  • Подсчитайте значения внутреннего массива (значение будет ключевым, а счет будет значением)
  • Сортировка по значениям (количеству), сохраняющим ключи

Это должно соответствовать вашим потребностям:

 <?php $a = array( 'svote001' => array("006", "006", "007"), 'svote002' => array("000", "000", "000"), 'svote003' => array("003", "001", "001"), ); $resultArray = array(); foreach ($a as $arrayName => $arrayData){ $resultArray[$arrayName] = array(); foreach ($arrayData as $value){ if (empty($resultArray[$arrayName][$value])){ $resultArray[$arrayName][$value] = 1; }else{ $resultArray[$arrayName][$value]++; } } arsort($resultArray[$arrayName]); } var_dump($resultArray); 

Изменить: решение AbraCadaver намного лучше, используйте его. Я позволю, чтобы ответ остался здесь.