php数组,有什么办法获取下一个元素的键值?

$arr = array('c'=>12,'p'=>1233,'a'=>233455);

已知键值p ,如何获取p后面一个元素的键值?

阅读 10.2k
3 个回答

array_search(next(),$arr);

由于不是数字下标,不能直接index+1,所以只能采取指针下移的方式。
在下标索引不知道的情况下,只能遍历,复杂度为O(N)
楼上的方法也是可以的,不过复杂度还是N,因为array_search还是遍历了所有的key

<?php

$arr = array('c'=>12,'p'=>1233,'a'=>233455, 'd'=> 'sdfsdfsdf');

while(current($arr)) {

    if(key($arr) === 'p') { 
        next($arr);
        echo current($arr);
    } else {
        next($arr);
    }
}
<?php
$keys = array_key($arr);
$keys[array_search('p', $keys) + 1] ?? null;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏