Я хочу подсчитать одни и те же значения на самом глубоком / последнем уровне многомерного массива:
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 намного лучше, используйте его. Я позволю, чтобы ответ остался здесь.