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