#php
#php
Вопрос:
PHP: Как суммировать результат оператора foreach?
Ниже приведен мой рабочий код. Как вы увидите, я пытаюсь подсчитать дни в каждом месяце, а затем суммировать их.
// A function to calculate days in a given month using just the date
function daysInMonths($date)
{
$month = date("m", strtotime($date));
$year = date("Y", strtotime($date));
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
return $num;
}
// A function that places the date of an unknown number of months into an array:
function getNextMonths($date, $numberOfMonths)
{
$timestamp_now = strtotime($date);
$months[] = date('Y-m-d', $timestamp_now);
for($i = 1;$i <= $numberOfMonths; $i )
{
$months[] = date('Y-m-d', (strtotime($months[0].' '.$i.' month')));
}
// counts the days in each month:
$j=0;
foreach ($months as $days)
{
echo "$j:".daysInMonths($days)."<br>";
$j;
}
print_r($months);
}
getNextMonths('2011-11-1', '4');
Текущий вывод:
Array (
[0] => 2011-11-01
[1] => 2011-12-01
[2] => 2012-01-01
[3] => 2012-02-01
[4] => 2012-03-01
)
После подсчета:
0:30
1:31
2:31
3:29
4:31
Все правильно, у меня просто возникли проблемы с суммированием массива после подсчета дней месяца.
Комментарии:
1. Ваша
calDaysInMonth()
функция может быть заменена простойdate('t', $date)
.
Ответ №1:
$tot = 0;
foreach ($months as $days) {
$tot = daysInMonths(days);
}
echo $tot;
Комментарии:
1. Вау. Это было просто. Спасибо.
Ответ №2:
array_sum() — http://php.net/manual/en/function .array-sum.php
$t = array(
31,
28,
31
);
echo array_sum($t); // 90
Ответ №3:
Добавьте счетчик, который вы используете в for while и т. Д.!!
Комментарии:
1. Возможно, вам следует привести пример