【发布时间】:2011-01-21 02:27:09
【问题描述】:
我不明白这个数组访问语法:
$target[$segs[count($segs)]]
真的可以将变量用作多维数组键吗?
【问题讨论】:
-
您在同样多的几分钟内问了四次大致相同的问题。请停止提出新问题,并在适当的情况下简单地更新现有问题。
我不明白这个数组访问语法:
$target[$segs[count($segs)]]
真的可以将变量用作多维数组键吗?
【问题讨论】:
如果$segs 是仅具有连续索引的数字数组,则可能会导致错误。
意思是,它会失败:
array("foo","bar");
但为
工作array("foo", 2=>"bar");
现在假设我们处理第一种情况,那么这将起作用:
$target[$segs[count($segs) - 1]]
首先,count($segs) - 1 将被计算并返回一个数字。在这种情况下,$segs 的最后一个索引(如果它是一个数字数组)。
$segs[count($segs) - 1] 因此将返回$segs 中的最后一个元素。无论该值是什么,都将用作$target[...] 的索引。
总结一下:是嵌套数组索引,由内而外求值。
这种方法是否必要取决于您要解决的问题。如果您不知道在哪里使用这种嵌套的可变数组索引,那么您可能不需要它。
【讨论】:
只要$segs 是一个数组,该语法就可以了。不过值得注意的是,如果您对$segs 使用数字索引数组,则调用count($segs) 是不存在的键,因为索引从零开始。
【讨论】: