This seems so easy but i cant figure it out
$users_emails = array(
'Spence' => 'spence@someplace.com',
'Matt' => 'matt@someplace.com',
'Marc' => 'marc@someplace.com',
'Adam' => 'adam@someplace.com',
'Paul' => 'paul@someplace.com');
I need to get the next element in the array but i cant figure it out... so for example
If i have
$users_emails['Spence']
I need to return matt@someplace.com and if Its
$users_emails['Paul']
i need start from the top and return spence@someplace.com
i tried this
$next_user = (next($users_emails["Spence"]));
and this also
($users_emails["Spence"] + 1 ) % count( $users_emails )
but they dont return what i am expecting
reset($array);
while (list($key, $value) = each($array)) { ...
Reset() rewind the array pointer to the first element, each() returns the current element key and value as an array then move to the next element.
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
To navigate you can use next($array)
, prev($array)
, reset($array)
, end($array)
, while the data is read using current($array)
and/or key($array)
.
Or you can use foreach if you loop over all of them
foreach ($array as $key => $value) { ...
You could do something like this:
$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]);
However I think you might have an error in your logic and what you are doing can be done better, such as using a foreach loop.
You would be better storing these in an indexed array to achieve the functionality you're looking for
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.