首先请原谅我的头衔,因为我无法找到合适的头衔。 请看一下数组
Array
(
[0] => Array
(
[0] => 2017
[1] => Array
(
[0] => December
)
)
[1] => Array
(
[0] => 2017
[1] => Array
(
[0] => December
)
)
[2] => Array
(
[0] => 2017
[1] => Array
(
[0] => October
)
)
[3] => Array
(
[0] => 2016
[1] => Array
(
[0] => December
)
)
)
你可以看到2017年重复三次,2017年12月内重复两次。现在我想从这个数组中获得一个多维数组,它将显示2017年和它的月份。
像
这样的东西Array
(
[2017] => 3
[December]=> 2 // should be a nested array of 2017
[October]=> 1 // should be a nested array of 2017
[2016] => 1
[December]=> 1 // should be a nested array of 2016
)
我尝试了array_count_values
和更多自定义代码,但我设法得到了
Array
(
[2017] => 3
[2016] => 1
)
编辑:月份计数没有像这样被键入。我需要知道一年中发生的年份和月份
非常感谢任何帮助。谢谢。
答案 0 :(得分:3)
您可以尝试循环,然后检查年份密钥和月份密钥是否已存在
$group = [];
foreach ($array as $value) {
$month = $value[1][0];
if (!isset($group[$value[0]])) {
$group[$value[0]] = array('count' => 0);
}
if (!isset($group[$value[0]][$month])) {
$group[$value[0]][$month] = 0;
}
$group[$value[0]][$month] += 1;
$group[$value[0]]['count'] += 1;
}
print_r($group);
如果您不一定需要统计,则可以将第一次if condition
的执行更改为$group[$value[0]] = array();
和行$group[$value[0]]['count'] += 1;
foreach ($array as $value) {
$month = $value[1][0];
if (!isset($group[$value[0]])) {
$group[$value[0]] = array();
}
if (!isset($group[$value[0]][$month])) {
$group[$value[0]][$month] = 0;
}
$group[$value[0]][$month] += 1;
}
print_r($group);