列表/查找表/哈希表的建议?

时间:2015-04-24 11:53:04

标签: php

我有一个相当简单(至少我认为简单)的任务我试图实现,但对于我的生活,我无法想到在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的列表并不是真正的列表,所以它就会出现在窗口之外。

我之后的建议/建议是为了更好地实现这一目标。

1 个答案:

答案 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

那有额外的结构