例如,我有一个包含以下元素的数组
$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(),但我不知道如何使用默认函数实现我所需的结果。 请帮帮我。
答案 0 :(得分:4)
试一试
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 :(得分: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;
}
答案 2 :(得分: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 强>
答案 3 :(得分: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]];