【问题标题】:How to get next key in an array from given key in php?如何从php中的给定键获取数组中的下一个键?
【发布时间】:2017-01-18 07:31:29
【问题描述】:

例如,我有一个包含以下元素的数组

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

如果我正在使用诸如

之类的功能,我如何从给定的键中获取下一个键
get_next_key_array($array,1);
it should return 3.

如果是的话

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

可以做到吗,我知道php中的next(),current(),prev(),但是我不知道如何使用默认函数来实现我需要的结果。 请帮帮我。

【问题讨论】:

标签: php arrays


【解决方案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;
}

【讨论】:

  • 非常感谢,这是我想要的:)。
  • 这个仍然是救生员和守护者。将“- 1”添加到一个新函数中,您的所有 prev-next-buttons 都可以在您想出的每个数组上工作。
【解决方案2】:
function get_next_key_array( $array, $find_key ) {
    $flag = false;
    foreach( $array as $key => $value ) {
        if( $flag ) {
            return $key;
        }
        if( $key === $find_key ) {
            $flag = true;
        }
    }
    return false;
}

【讨论】:

    【解决方案3】:

    试试这个:

    $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]];
    

    【讨论】:

      【解决方案4】:

      这是在正常情况下完成的:

      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

      【讨论】:

      • 请注意,如果未检测到密钥,则进入无限循环。
      猜你喜欢
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      相关资源
      最近更新 更多