2017-01-18 12 views
-3

は、私はそれがphpの指定されたキーから配列の次のキーを取得するには?たとえば、

になる場合、私は

get_next_key_array($array,1); 
it should return 3. 

のようないくつかの機能を使用している場合、私は、与えられたキーから次のキーを取得することができる方法

$array = array(
       1 => "a", 
       3 => "c", 
       4 => "d", 
       6 => "f", 
      ); 

を、以下の要素を持つ配列を持っています

get_next_key_array($array,4); 
it should return 6. 

phpでnext()、current()、prev()を知っていますが、デフォルト関数を使って必要な結果を実装する方法がわかりません。 私を助けてください。

+7

[次のキーを配列にしてください](http://stackoverflow.com/questions/7454904/next-key-in-array) –

答えて

1

これは通常のケースのために行われ

function get_next_key_array($array,$key){ 
    $keys = array_keys($array); 
    $position = array_search($key, $keys); 
    if (isset($keys[$position + 1])) { 
     $nextKey = $keys[$position + 1]; 
    } 
    return $nextKey; 
} 
+0

ありがとう、これは私が望むものです:) –

1
function get_next_key_array($array, $findKey) 
{ 
    $flag = false; 
    foreach ($array as $key => $value) { 

     if ($flag == true) { 
      return $key; 
     } 
     if ($findKey == $key) { 
      $flag = true; 
     } 
    } 
    return false; 
} 
0

これを試してみてください。

$len = count($array); 
$keys = array_keys($array); 
$keys_map = array_flip($keys); 
if($keys_map[$current_key]>=$len-1) 
    $nextkey = $keys[0]; 
else 
    $nextkey = $keys[$keys_map[$current_key]]; 
1

これを試してみてください:

function get_next_key_array(&$array, $key) 
{ 
    while (key($array) !== $key) { 
     next($array); 
    } 
    next($array); 

    return key($array); 
} 
$array = array(
    1 => 'a', 
    3 => 'c', 
    4 => 'd', 
    6 => 'f', 
); 
$key = 4; 
echo get_next_key_array($array, $key); 

DEMO