在PHP中移动数组内部指针的最佳方法

时间:2015-01-12 17:20:54

标签: php arrays dynamic-arrays

考虑我的以下数组

for($i=0;$i<10;$i++) $arr2test['a'.sprintf('%s',$i)]='arr # '.($i+1);

现在,我可以通过索引访问$ arr2test。就像,我可以回显$ arr2test ['a3']来显示这个数组的第四个元素。

我的要求是获得此数组的第五个元素。让我,我不知道第五元素的索引。我只知道第四个元素索引,即a3

我知道我可以通过类似下面代码的foreach循环来实现 -

foreach($arr2test as $k=>$v){
    if(isset($a3Found)) break;
    if($k=='a3') $a3Found=true;
}
echo $v;

请考虑一个包含大量数据的数组,例如数千甚至更多数据。 因此,在这种情况下,上述解决方案并不完美。特别是当我需要经常进行这样的操作时。

3 个答案:

答案 0 :(得分:0)

您可以使用array_keys()

$keys = array_keys($arr2test);
$index4 = array_search('a3', $keys);
$index5 = $keys[$index4+1];
$element5 = $arr2test[$index5];

答案 1 :(得分:0)

使用array_slice

$a4 = array_slice($arr2test, 4, 1);

答案 2 :(得分:0)

我认为这是获取第五个元素的索引的更快方法

reset($arr2test);
for($j=1;$j<5;$j++){
    next($arr2test);
}
echo current($arr2test);