如何在两个给定日期之间添加值?我有一个包含日期dd.mm.yyyy格式的数组及其对应的值。
数组:
Array
(
[0] => Array
(
[0] => 01.08.2014
[1] => 600
)
[1] => Array
(
[0] => 02.08.2014
[1] => 500
)
[2] => Array
(
[0] => 03.08.2014
[1] => 700
)
[3] => Array
(
[0] => 04.08.2014
[1] => 600
)
[4] => Array
(
[0] => 05.08.2014
[1] => 600
)
[5] => Array
(
[0] => 06.08.2014
[1] => 600
)
)
示例:01.08.2014至03.08.2014 = 1800
我怎么能用循环呢?
我试过这段代码,但它没有用。
$row_length = count($data);
$sum = 0;
for ($row = 0; $row < $row_length; $row++) {
$ax = $data[$row][1];
if ($data[$row][0] == $date1) {
$sum = $ax + $sum;
echo $test;
if ($data[$row][0] == $date2) {
break;
}
}
}
答案 0 :(得分:1)
我认为您可以从为这些数据找到更好的格式中受益。
话虽如此,对于你当前的数组,我认为这会解决问题,如果你将它包装在一个函数中,你可以传入开始和结束: -
$test = array();
$test[0] = array('01.08.2014', 300);
$test[1] = array('02.08.2014', 400);
$test[2] = array('03.08.2014', 800);
$test[3] = array('04.08.2014', 400);
$test[4] = array('05.08.2014', 900);
$test[5] = array('06.08.2014', 100);
$start = new DateTime('01.08.2014');
$end = new DateTime('03.08.2014');
$total = 0;
for ($i = 0; $i < count($test); $i++) {
$date = new DateTime($test[$i][0]);
if ($date >= $start && $date <= $end) {
$total += $test[$i][1];
}
}
echo $total . "\n";
答案 1 :(得分:1)
试试这个:
row_length = count($data);
$sum = 0;
for ($row = 0; $row < $row_length; $row++) {
$ax = $data[$row][1];
if ($data[$row][0] == $date1 || $sum != 0) {
$sum = $ax + $sum;
}
if ($data[$row][0] == $date2) {
break;
}
}
}