我有一个数组:
$array=array(
"sdf"=>500,
"gsda"=>1000,
"bsdf"=>1500,
"bads"=>2000,
"iurt"=>2500,
"poli"=>3000
);
如何获取下一个键的名称?例如,如果当前数组是gsda
,我需要bsdf
。
答案 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'
答案 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];
这也允许您使用不在键列表中的搜索值(将返回第一个键)