关联php数组中的next元素

问题描述

| 这似乎很简单,但我无法弄清楚
$users_emails = array(
\'Spence\' => \'spence@someplace.com\',\'Matt\'   => \'matt@someplace.com\',\'Marc\'   => \'marc@someplace.com\',\'Adam\'   => \'adam@someplace.com\',\'Paul\'   => \'paul@someplace.com\');
我需要获取数组中的下一个元素,但是我无法弄清楚...所以例如 如果我有
$users_emails[\'Spence\']
我需要返回matt@someplace.com,如果它
$users_emails[\'Paul\'] 
我需要从头开始并返回spence@someplace.com 我尝试了这个
$next_user = (next($users_emails[\"Spence\"]));
这也
 ($users_emails[\"Spence\"] + 1 ) % count( $users_emails )
但他们没有回报我的期望     

解决方法

reset($array);
while (list($key,$value) = each($array)) { ...
Reset()将数组指针回退到第一个元素,each()返回当前元素的键和值作为数组,然后移至下一个元素。
list($key,$value) = each($array);
// is the same thing as
$key = key($array); // get the current key
$value = current($array); // get the current value
next($array); // move the internal pointer to the next element
要进行导航,可以使用
next($array)
prev($array)
reset($array)
end($array)
,同时使用
current($array)
和/或
key($array)
读取数据。 或者如果您遍历所有它们,则可以使用foreach
foreach ($array as $key => $value) { ...
    ,您可以执行以下操作:
$users_emails = array(
\'Spence\' => \'spence@someplace.com\',\'Matt\'   => \'matt@someplace.com\',\'Marc\'   => \'marc@someplace.com\',\'Adam\'   => \'adam@someplace.com\',\'Paul\'   => \'paul@someplace.com\');

$current = \'Spence\';
$keys = array_keys($users_emails);
$ordinal = (array_search($current,$keys)+1)%count($keys);
$next = $keys[$ordinal];
print_r($users_emails[$next]);
但是我认为您可能在逻辑上有错误,可以更好地完成工作,例如使用foreach循环。     ,您最好将它们存储在索引数组中,以实现所需的功能     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...