【问题标题】:I Don't Understand This Array Syntax我不明白这个数组语法
【发布时间】:2011-01-21 02:27:09
【问题描述】:

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

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

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

【问题讨论】:

  • 您在同样多的几分钟内问了四次大致相同的问题。请停止提出新问题,并在适当的情况下简单地更新现有问题。

标签: php arrays syntax


【解决方案1】:

如果$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.

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

【讨论】:

    【解决方案2】:

    只要$segs 是一个数组,该语法就可以了。不过值得注意的是,如果您对$segs 使用数字索引数组,则调用count($segs) 是不存在的键,因为索引从零开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 2011-12-31
      • 2017-01-22
      • 2016-10-11
      • 1970-01-01
      • 2018-01-27
      相关资源
      最近更新 更多