我想在多维数组的最深/最后一级计数相同的值:
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
)
)
此外,还应将计数值从高到低进行排序。
发布于 2014-02-12 21:39:49
foreach($array as $k => $v) {
$result[$k] = array_count_values($v);
arsort($result[$k]);
}
发布于 2014-02-12 21:39:31
这应该符合你的需要:
<?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解决方案要好得多。无论如何,我都会让答案留在这里。
https://stackoverflow.com/questions/21740079
复制相似问题