多维数组的array_count_values? [英] array_count_values of a multi dimensional array?
本文介绍了多维数组的array_count_values?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经搜索了很多这个问题.但是我在任何地方都找不到合适的解决方案.就像您对一维数组执行array_count_values()
一样,如果想要类似类型的解决方案,对多维数组怎么办?
I have searched this question a lot. But I could not find a proper solution anywhere. Just like you do an array_count_values()
for a single dimensional array, what do you do for a multi dimensional array if you want similar type of a solution?
例如-
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
,您可以这样做:
Using the variable $arr
for your array, you could do this:
$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
)
这是另一个将其生成为多维数组的版本:
Here's another version that produces it as a multidimensional array:
$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
)
)
这篇关于多维数组的array_count_values?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文