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;
}