我真的很难在PHP中获得多维数组,我的背景是C和Java,我对数组都没有问题!
我正试图从SQL数据库中读取一个月的列表,每个月都有一个值对应的值列表。
ie。
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改为6在C语言中,我将是这个;
array[2][11] = 6
在PHP中是否有等价的操作?
这样可以:
$myArray[2][11] = 6;
$myArray[2][12] = 7;
var_dump( $myArray ); //view structure
数组访问的快速示例
$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']
];
以一种更面向对象的方式,你可以使用standardphpllibrary (SPL)的ArrayObject类,它提供了许多方法和对象(接口,迭代器等)来处理数组。