2017-10-10 13 views
0

美好的一天,創建數據的多維數組不會產生陣列上的JavaScript

我只是困惑,爲什麼我的數據結構犯規渲染陣列,其顯示的對象列表,而不是,下面的代碼的目的是存儲的天在陣列結構幾個月,

$calendar = []; 
for ($m=1; $m<=12; $m++) { 
    $s=date ("w", mktime (0,0,0,$month,1,$year)); 

    for ($ds=1;$ds<=$s;$ds++) { 

    $row_day = new stdClass(); 
    $row_day->day = $d; 
    $row_day->is_holiday = $is_holiday; 
    $row_day->is_paydate = $is_paydate; 
    //day of the week 
    $row_day->dotw = date("w",mktime (0,0,0,$month,$d,$year)); 
    $row_day->is_funds_due = $is_funds_due; 

    $calendar[$m][] = $row_day; 

    } 

} 

echo json_encode(array('type'=>2,'data'=>$calendar)); 

但是當我CONSOLE.LOG在我的JS它產生的這種結構..這顯然不是一個數組.. enter image description here

我錯了建設我的結構?

它只是它更容易操縱,如果它的陣列模式。因爲你可以只使用data.length,但在我的情況下它不工作。

感謝您的閱讀,祝您有美好的一天!

+0

啊,我就可以相應地格式化 – melvnberd

+0

我不是一個PHP的人,但你不能只使用'json_encode($ calendar)'?你似乎在用調用'array()'的參數來創建一個對象而不是一個數組。 – nnnnnn

+0

我實際上需要在我的返回值上添加額外條件的參數..我真的認爲我需要的可能只是我還不知道如何實現此目標..感謝無論如何傳遞.. – melvnberd

回答

1

使用陣列相反性病類的(它是一個對象)只是在響應類型識別

$calendar = []; 
for ($m=1; $m<=12; $m++) { 
    $s=date ("w", mktime (0,0,0,$month,1,$year)); 

    for ($ds=1;$ds<=$s;$ds++) { 
     $row_day = array(); 
     $row_day['day'] = $d; 
     $row_day['is_holiday'] = $is_holiday; 
     $row_day['is_paydate'] = $is_paydate; 
     //day of the week 
     $row_day['dotw'] = date("w",mktime (0,0,0,$month,$d,$year)); 
     $row_day['is_funds_due'] = $is_funds_due; 

     $calendar[$m] = $row_day; 
    } 
} 

echo json_encode(array('type'=>2,'data'=>$calendar)); 
1

stdClass()an object,而不是一個數組。

有一個簡單的(懶惰?)的方式把你的對象,並把它變成一個數組發現here

另一種選擇將是實例您的數據擺在首位的數組。

$row_day['day'] = $d; 
$row_day['is_holiday'] = $is_holiday; 
$row_day['is_paydate'] = $is_paydate;