我不明白这个数组语法

时间:2011-01-20 18:10:35

标签: php arrays syntax

我不明白这个数组访问语法:

$target[$segs[count($segs)]]

是否真的可以将变量用作多维数组键?

2 个答案:

答案 0 :(得分:3)

如果$segs是仅具有连续索引的数值数组,那么可能会导致错误  意思是,它会失败:

array("foo","bar");

但是为

工作
array("foo", 2=>"bar");

现在假设我们处理第一个案例,那么这将有效:

$target[$segs[count($segs) - 1]]

首先,将评估count($segs) - 1并返回一个数字。在这种情况下,$segs最后一个索引(前提是它是一个数值数组)。

因此,

$segs[count($segs) - 1]将返回$segs中的最后一个元素。无论该值是什么,都将用作$target[...]的索引。


总结一下:它是嵌套数组索引并在里面进行评估。

See it in action.

是否需要这样的方法取决于您尝试解决的问题。如果您不知道在哪里使用这种嵌套的变量数组索引,那么您可能不需要它。

答案 1 :(得分:2)

如果$segs是一个数组,那么语法很好。但值得注意的是,如果您使用数字索引数组作为$segs,则调用count($segs)是一个不存在的键,因为索引从零开始。