【发布时间】:2010-11-18 06:14:59
【问题描述】:
我找了又找,找不到有类似问题的人。
我有一个 do ... while 循环,其中包含将每个记录中的值推送到四个不同数组中的代码。一切似乎都很好,除了数组是空的(给我警告:除以零)。
我能够回显每个记录的四个值以及循环中每个订单日期的 unix 时间戳,因此每个记录的值都是正确的,但数组是空的。我尝试在循环中注释掉 array[] 代码块周围的条件语句,但没有区别。
还尝试使用 array_push 来查看;再次,没有区别。
我是一个新手,我一辈子都看不出为什么数组没有被填充。
这是循环外的代码:
// set timezone and $one_year and $year_limit variables (used in the do-while loop)
ini_set('date.timezone', 'America/Los_Angeles');
$one_year = 60 * 60 * 24 * 365;
$year_limit = strtotime("-1 year");
// create the empty arrays for each rating
$total_vals = array();
$food_vals = array();
$service_vals = array();
$atmo_vals = array();
// get the average for each rating
$total_avg = round((array_sum($total_vals)) / (count($total_vals)));
$food_avg = round((array_sum($food_vals)) / (count($food_vals)));
$service_avg = round((array_sum($service_vals)) / (count($service_vals)));
$atmo_avg = round((array_sum($atmo_vals)) / (count($atmo_vals)));
这是循环:
<?php do { ?>
<?php
// create unix timestamp from order_date
$pub_date = strtotime($row_getReviews['order_date']);
// add rate values from each record to the arrays if less than 1 year old
if($pub_date - $one_year < $year_limit) { // tried commenting the condition out
$total_vals[] = $row_getReviews['total_rate'];
$food_vals[] = $row_getReviews['food_rate'];
$service_vals[] = $row_getReviews['service_rate'];
$atmo_vals[] = $row_getReviews['atmo_rate'];
}
?>
<!-- html, css, etc here to display text and more -->
<?php } while ($row_getReviews = mysql_fetch_assoc($getReviews)); ?>
非常感谢任何帮助!
【问题讨论】: