欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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


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

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

                   
刺客  41                        
2017-09-24 提问                    


3 个回答
           

由于不是数字下标,不能直接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);
    }
}
           
                   
Lowky  4k                        
2017-09-24 更新                        

<?php
$keys = array_key($arr);
$keys[array_search('p', $keys) + 1] ?? null;
           
                   
Poised_flw  1.5k                        
2017-09-24 更新                        


普通分类: