我有一个相当简单(至少我认为简单)的任务我试图实现,但对于我的生活,我无法想到在PHP中做到这一点的最佳方式。
注意我试图避免使用嵌套的多维数组。
我想要做的是一个简单的2轴参考表,我可以查询/查看。
0 | 1 | 2 | 3 | 4 | 5
0 5 0 0 0 0 0
-
1 0 2 0 1 0 0
-
2 0 0 0 7 0 1
-
3 1 2 4 10 1 0
-
4 0 0 0 0 0 0
-
5 0 3 4 0 1 0
然后我想查询它,所以lookup_table(3,3)将返回10.我还需要更新表中的值,以便add_lookup_table(3,3,1)将位置3,3更改为11或某些。的变异。
到目前为止,我知道我可以使用multidim数组来实现它,但是想要避免这种情况,因为它只是每次都能获得和设置的痛苦。 我想到了一个列表(),但是php的列表并不是真正的列表,所以它就会出现在窗口之外。
我之后的建议/建议是为了更好地实现这一目标。
答案 0 :(得分:1)
你可以像这样使用单个数组
$array = array(
5, 0, 0, 0, 0, 0,
0, 2, 0, 1, 0 , 0
..etc...
);
然后每个键只有$array[$row * 6 + $column]
所以$array[3*6 + 3]
或将数组定义为
$array["3.3"] = 10;
当存在多维数组并且非常适合该任务时,上述两种方法都可以做到这一点。
您列出了您不希望将其用作“每次获取和设置”的原因 - 无论何种解决方案,您都必须获取并设置为填充它。
这里的真正解决方案似乎是你想要避免的解决方案
你可能想检查
http://php.net/manual/en/spl.datastructures.php
那有额外的结构