I didn't find that thread in my initial search.
This function does what I needed (loop through an array which was stored as a session variable from a database query), however, if the order of an associative array can change, this probably will not help the cause.
This function worked fine for my initial test, but I'll probably try to restructure all the arrays as multidimensional arrays with a numeric key, which seems like a more efficient way to go.
For the curious:
function nav_array($array,$current_item){
$hold_values=array_values($array);
$hold_keys=array_keys($array);
$active_key=array_search($current_item,$hold_values);
$max_key=count($array);
if($active_key>0){
$nav['last']=$hold_keys[($active_key-1)];
}else{
$nav['last']=$hold_keys[($max_key-1)];
}
if($active_key<($max_key-1)){
$nav['next']=$hold_keys[($active_key+1)];
}else{
$nav['next']=$hold_keys[0];
}
return $nav;
}