如何计算数组中的值并在 foreach 循环中仅显示一次值
how to count values from an array and show value only once in a foreach loop
我正在努力解决这个问题:
我有一个以月份为值的数组。数组中有 3 个值(月):09
、09
和 04
。所以 2 次 9 月 (09) 和 1 次 4 月 (04)。
现在我只想输出每个月一次,以及该月出现的次数。
所以我的输出应该是这样的
04 1 // april 1 time
09 2 // september 2 times
我现在有了这个 foreach 循环:
$months = array('04','09','09');
foreach($months as $month) {
$archive_months = array('01','02','03','04','05','06','07','08','09','10','11','12');
$counts = array_count_values($archive_months);
echo $month.' '.$counts[$month].'<br />';
如果我使用 foreach(array_unique($months) as $month) {
9 月 (09) 只出现一次,但数字是 1 而不是 2。
输出:
04 1
09 1
应该是:
04 1
09 2
只计算月份的值而不是 archive_months
<?php
$months = array('04','09','09');
$counts = array_count_values($months);
var_dump($counts);
输出:
array(2) {
["04"]=>
int(1)
["09"]=>
int(2)
}
你不是在数 $months
,而是 $archive_months
。
并且 arry_count_values
已经在做您需要的事情。不需要 for 循环。
$months = array('04','09','09');
print_r(array_count_values($months));
就像 Ôrel 已经提到的:
$months = array('04','09','09');
$counts = array_count_values($months);
// your foreach:
foreach($counts as $key => $val) {
echo $key.' '.$val.'<br />';
}
输出将类似于:
09 2
04 1
我正在努力解决这个问题:
我有一个以月份为值的数组。数组中有 3 个值(月):09
、09
和 04
。所以 2 次 9 月 (09) 和 1 次 4 月 (04)。
现在我只想输出每个月一次,以及该月出现的次数。 所以我的输出应该是这样的
04 1 // april 1 time
09 2 // september 2 times
我现在有了这个 foreach 循环:
$months = array('04','09','09');
foreach($months as $month) {
$archive_months = array('01','02','03','04','05','06','07','08','09','10','11','12');
$counts = array_count_values($archive_months);
echo $month.' '.$counts[$month].'<br />';
如果我使用 foreach(array_unique($months) as $month) {
9 月 (09) 只出现一次,但数字是 1 而不是 2。
输出:
04 1
09 1
应该是:
04 1
09 2
只计算月份的值而不是 archive_months
<?php
$months = array('04','09','09');
$counts = array_count_values($months);
var_dump($counts);
输出:
array(2) {
["04"]=>
int(1)
["09"]=>
int(2)
}
你不是在数 $months
,而是 $archive_months
。
并且 arry_count_values
已经在做您需要的事情。不需要 for 循环。
$months = array('04','09','09');
print_r(array_count_values($months));
就像 Ôrel 已经提到的:
$months = array('04','09','09');
$counts = array_count_values($months);
// your foreach:
foreach($counts as $key => $val) {
echo $key.' '.$val.'<br />';
}
输出将类似于:
09 2
04 1