数组中的下一个键

Jor*_*rdy 10 php arrays

我有一个数组:

$array=array(
    "sdf"=>500,
    "gsda"=>1000,
    "bsdf"=>1500,
    "bads"=>2000,
    "iurt"=>2500,
    "poli"=>3000
);
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到下一把钥匙的名字?例如,如果当前数组是gsda,我需要bsdf.

Ria*_*iaD 26

如果指针不在此元素上,正如其他解决方案所假设的那样,您可以使用

<?php
    $keys = array_keys($arr);
    print $keys[array_search("gsda",$keys)+1];
Run Code Online (Sandbox Code Playgroud)

  • 这将导致最后一个元素出现问题。应该是`$keys = array_keys($arr); $index = array_search("gsda",$keys); if ( count($arr) &lt;= $index+1 ) { print '数组末尾'; } else { 打印 $keys[$index+1]; }` 正确处理数组边界。 (4认同)

Tom*_*Tom 15

$next = next($array); 
echo key($array);
Run Code Online (Sandbox Code Playgroud)

应返回对应$ next的键;


Lar*_*ars 5

如果的指针current()在右键上,则@Thomas_Cantonnet是正确的,并且您要使用next()。如果没有通过next()遍历数组,则首先必须遍历该数组以正确设置内部索引指针:

$search = "bsdf";
while (($next = next($array)) !== NULL) {
    if ($next == $search) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在$ next指向您当前的搜索索引,您可以通过遍历其余部分next()

  • 请在所有代码块周围使用方括号。:-) (2认同)