【发布时间】:2016-06-25 17:10:15
【问题描述】:
这个问题只是为了好玩和好奇。
编辑:我的问题不同于 How to find the foreach index 因为在我的例子中 $key 已经有一个非数字值了。
如果没有在 foreach 范围内递增的变量,就像通常的 $i 一样,有没有办法在 $key 已经命名时获取项目的索引?
例子:
$myNumericIndexArray = ('foo', 'bar', 'go', 'habs');
foreach($myNumericIndexArray as $key => $value){
//Here $key will be 0 -> 1 -> 2 -> 3
}
现在,如果我有:
$myNamedIndexArray = ('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic');
foreach($myNamedIndexArray as $key => $value){
//Here $key will be foo -> go -> CSGO_bestTeam
}
我可以,而不必:
$i=0;
foreach($myNamedIndexArray as $key => $value){
//Here $key will be foo -> go -> CSGO_bestTeam
$i++;
}
访问命名数组的索引。在 foreach 声明中声明的内容,例如 for 或 $key 的状态?
祝你好运。
【问题讨论】:
-
不,您不能在 foreach 构造中声明计数器变量。您可以使用 for 循环执行此操作,只需将键保存在数组中,然后您可以使用 counter 变量访问该数组。
-
你的意思是访问关联数组中的数字索引?
-
另外:foreach 没有自己的范围。 PHP 有函数作用域,你在 foreach 中声明的任何东西都可以在它之外使用。
-
@Drudge 是的,基本上在治疗时在钥匙上有一个计数器。无需在每次迭代时递增的范围之外声明计数器。这没有目标,真的,只是好奇是否有与此有关的整洁的东西