Get foreach numeric index when keys are named
这个问题只是为了好玩和好奇。
编辑:我的问题与如何查找foreach索引因为在我的例子中,$key已经有了一个非数字值。
与通常的$I一样,如果foreach范围内没有增量的foreach之外的变量,是否有一种方法可以在已经命名$key时获取项的索引?
示例:
1 2 3 4 5 | $myNumericIndexArray = ('foo', 'bar', 'go', 'habs'); foreach($myNumericIndexArray as $key => $value){ //Here $key will be 0 -> 1 -> 2 -> 3 } |
现在,如果我有:
1 2 3 4 5 | $myNamedIndexArray = ('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic'); foreach($myNamedIndexArray as $key => $value){ //Here $key will be foo -> go -> CSGO_bestTeam } |
号
我可以不必:
1 2 3 4 5 | $i=0; foreach($myNamedIndexArray as $key => $value){ //Here $key will be foo -> go -> CSGO_bestTeam $i++; } |
访问命名数组的索引.forEach声明中声明的内容,比如for或$key的状态?
好好喝一杯。
如果确实需要关联数组的索引数组,请尝试以下操作:
1 2 3 4 5 6 | $myNamedIndexArray = ['foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic']; $keys = array_keys($myNamedIndexArray); foreach($myNamedIndexArray as $key => $value){ echo array_search($key, $keys); } |
我不知道您为什么要在每个循环迭代中执行
1 2 3 4 5 6 | $positions = array_flip(array_keys($myNamedIndexArray)); foreach($myNamedIndexArray as $key => $value){ echo"{$key} => {$value} is position {$positions[$key]} "; } |
像这样:
1 2 3 4 5 6 7 | <?php $myNamedIndexArray = array('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic'); $numericIndexArray = array_keys($myNamedIndexArray); foreach($numericIndexArray as $key=>$value){ echo $key.'</br>'; //here key will be 0 1 2 echo $value. '</br>'; } |
。
我想试试这个:
1 2 3 4 5 6 7 8 9 10 | <?php $myNamedIndexedArray = ['foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic']; $myNumberIndexedArray = array_keys($myNamedIndexedArray); foreach($myNumberIndexedArray as $key => $value){ echo $key." =>" . $myNamedIndexedArray[$myNumberIndexedArray[$key]]."<br />"; } ?> |
号
ADN输出为:
1 2 3 | 0 => bar 1 => habs 2 => fnatic |