数组中的下一个键

时间:2011-09-17 12:55:12

标签: php arrays

我有一个数组:

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

如何获取下一个键的名称?例如,如果当前数组是gsda,我需要bsdf

8 个答案:

答案 0 :(得分:25)

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

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

答案 1 :(得分:14)

$next = next($array); 
echo key($array);

应该返回对应于$ next的键;

答案 2 :(得分:4)

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

$search = "bsdf";
while (($next = next($array)) !== NULL) {
    if ($next == $search) {
        break;
    }
}

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

答案 3 :(得分:1)

next($array);
$key = key($array);
prev($array);

答案 4 :(得分:1)

使用next和each的组合来获取下一个项目的键和值:

next($array)
$keyvalueArray = each ( $array )

$ keyvalueArray现在应该将下一个键和值保存为'key'和'value'

http://www.php.net/manual/en/function.each.php

答案 5 :(得分:0)

您可以使用foreach

$test=array(
1=> array("a","a","a"),
2=> array("b","b","b"),
'a'=> array("c","c","c")
);

foreach (array_keys($test) as $value)
{
    foreach ($test[$value] as $subValue)
    {
        echo $subValue."  -  ".$value;
        echo "\n";
    }
    echo "\n";
}

输出

a  -  1
a  -  1
a  -  1

b  -  2
b  -  2
b  -  2

c  -  a
c  -  a
c  -  a

答案 6 :(得分:0)

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;

//在上面的函数中,第一个参数是需要在其中搜索键的数组,第二个参数是用于获取下一个键的$ key,这意味着您必须从您要获取的关联数组中找到一个现有键下一个键。

答案 7 :(得分:0)

使用 php >= 5.6,您可以执行此操作(基于 @RiaD 解决方案)

$keys = array_keys($array);
$current = array_search('gsda', $keys);
$nextKey = $keys[($current===false ? -1 : $current)+1] ?: $keys[0];

这也允许您使用不在键列表中的搜索值(将返回第一个键)