使用键 php 获取下一个数组项

php
2022-08-30 21:53:47

我有一个数组

Array(1=>'test',9=>'test2',16=>'test3'... and so on);

如何通过传递密钥来获取下一个数组项。

例如,如果我有钥匙,那么我应该得到结果。如果我有,那么它应该作为结果返回。9test31'test2'

已编辑以使其更清晰

echo  somefunction($array,9); //result should be 'test3'
function somefunction($array,$key)
{
  return $array[$dont know what to use];
}

答案 1
function get_next($array, $key) {
   $currentKey = key($array);
   while ($currentKey !== null && $currentKey != $key) {
       next($array);
       $currentKey = key($array);
   }
   return next($array);
}

艺术

return current(array_slice($array, array_search($key, array_keys($array)) + 1, 1));

如果搜索的键不存在,则很难使用第二种方法返回正确的结果。请谨慎使用。


答案 2

您可以使用 next();函数,如果你想得到数组的下一个即将到来的元素。

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

更新

如果你想检查和使用下一个元素存在,你可以试试:

创建一个函数:

function has_next($array) {
    if (is_array($array)) {
        if (next($array) === false) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}

称呼它 :

if (has_next($array)) {
    echo next($array);
}

来源 : php.net


推荐