PHP数组\u在while循环中推送创建的数组级别过多?
我将尝试在不引起任何混淆的情况下对此进行解释,首先是相关代码:PHP数组\u在while循环中推送创建的数组级别过多?,php,arrays,while-loop,Php,Arrays,While Loop,我将尝试在不引起任何混淆的情况下对此进行解释,首先是相关代码: $week_start_dates = array($start_of_last_week, $start_of_last_week_last_year, $start_of_previous_week); $week_end_dates = array($end_of_last_week, $end_of_last_week_last_year, $end_of_previous_week); $weekname
$week_start_dates = array($start_of_last_week, $start_of_last_week_last_year, $start_of_previous_week);
$week_end_dates = array($end_of_last_week, $end_of_last_week_last_year, $end_of_previous_week);
$weekname = array('TW', 'LY', 'PW');
基本上,这些数组包含以下查询的开始日期和结束日期:
$leads = array();
for ($i = 0; $i < sizeof($week_start_dates) ; $i++)
{
$sql = '
SELECT
email.country,
email_dailytotal.summarydate,
sum(email_dailytotal.conversions) as leads
FROM email_dailytotal
left join email on email.email_id = email_dailytotal.email_id
left join email_type on email.type = email_type.type_id
WHERE
email_dailytotal.summarydate >= "' . $week_start_dates[$i] . '" and email_dailytotal.summarydate <= "' . $week_end_dates[$i] . '" and email.business = "' . $business .'" and email.business_division = "' . $businessdivision .'"
GROUP BY email.country
';
$dbresult = mysql_query($sql);
while($results = mysql_fetch_array($dbresult)) {
$country = $results['country'];
$no_leads = $results['leads'];
array_push($leads, array(
$country => array(
$weekname[$i]=>$no_leads
)
));
}
当我希望它是:
[0] => Array
(
[uk] => Array
(
[TW] => 10334
[LY] => 18579
[PW] => 13410
)
etc...
)
尝试将其更改为:
$leads[$country] = array(
$weekname[$i]=>$no_leads
);
我很困惑,你在使用UNIX时间戳吗?日期不是问题,问题在于数组的结构。谢谢,它改变了它,似乎只迭代一次-它只输出“PW”数字。太完美了,谢谢!我会在几分钟后接受,当它允许我。
$leads[$country] = array(
$weekname[$i]=>$no_leads
);
while($results = mysql_fetch_array($dbresult)) {
$country = $results['country'];
$no_leads = $results['leads'];
if( !isset($leads[$country]) ){
$leads[$country] = array();
}
$leads[$country][$weekname[$i]] = $no_leads;
}