2014-06-24 112 views
0

我真的很費力地在PHP中使用多維數組,我的背景是C和Java,而且我對數組沒有任何問題!PHP多維數組鍵和值

我試圖從SQL數據庫中讀取月份列表,每個月都有一個值對應的值列表。

即。

2014-01-01, ("Val1", "Val2", "Val3", "Val4", "Val5"), (3, 4, 7, 5, 3) 
    2014-02-01, ("Val1", "Val2", "Val3", "Val4", "Val5"), (5, 3, 6, 2, 8) 
    2014-03-01, ("Val1", "Val2", "Val3", "Val4", "Val5"), (6, 5, 4, 3, 2) ... 

我可以讀出的值,我可以拆分下來,但我希望能夠將這些值添加到一個數組,但把值到正確的月份。

我c/Java我只是創建一個這樣的數組;

[0,0,0,0,0,0,0,0,0,0,0,0] - Val1 goes in here 
[0,0,0,0,0,0,0,0,0,0,0,0] - Val2 goes in here 
[0,0,0,0,0,0,0,0,0,0,0,0] 
[0,0,0,0,0,0,0,0,0,0,0,0] 
[0,0,0,0,0,0,0,0,0,0,0,0] - Val5 goes in here 

然後,當我解析值,我會選擇月份,並將我讀取的值添加到正確的月份。我可以在PHP中創建數組,我需要知道的是,在我的咖啡/睡眠剝奪狀態中我錯過了一種非常明顯的方式,我基本上可以這樣說;

如果我想將第二個數組中的位置11更改爲C中的第6個 我就是這個;

array[2][11] = 6 

有沒有相當於在PHP中做到這一點?

+2

'$ array [2] [11] = 6;'不適合你? –

+1

在PHP中它完全一樣:'$ arr [2] [11] = 6',假設你的數組是數字索引的。請顯示您的完整代碼,以便我們可以更好地瞭解 – Bojangles

+0

$ array [2] [11] = 6;應該可以工作 – Manquer

回答

1

這會工作:

$myArray[2][11] = 6; 
$myArray[2][12] = 7; 
var_dump($myArray); //view structure 
0

一個簡單的例子數組訪問

$data = [ 
    '2014-06-24' => ['Val1', 'Val2', 'Val3'], 
    '2014-06-23' => ['Val1', 'Val2', 'Val3'] 
]; 

在PHP中你有數組訪問不同的方式。數組中的內部迭代器以0開始。快速和骯髒,您可以執行以下操作。

$data['2014-06-24'][0] = 'Val4'; 

所以你的$ data數組看起來就像

$data = [ 
    '2014-06-24' => ['Val4', 'Val2', 'Val3'], 
    '2014-06-23' => ['Val1', 'Val2', 'Val3'] 
]; 

在你可以使用ArrayObject的類StandardPhpLibrary(SPL)的更面向對象的方式,至極帶來了許多方法和objtects(接口,迭代器等)來處理數組。