Array-Key zurück und vorwärts

Sasser

Erfahrenes Mitglied
Guten Abend!

Ich habe ein Array, bei welchem die Keys nicht von 0-10 durchnummeriert sind, sondern teilweise 1,3,6,10 usw. nur vorhanden sind.

Nun möchte ich eine Art Seitennavigation realisieren, schaffe es jedoch nicht, den vorherigen noch den folgenden Key zu ermitteln.

Wenn man beim ersten Key angelangt ist, soll der letzte wieder ausgegeben werden und anders herum.

Meine Überlegung war Folgende, welche aber nicht funktioniert:

PHP:
ksort ( $videos );
foreach ($videos as $key => $video) {
	if ($key == $id) {
		$keys = array_keys ( $videos );
		if ($temp > "1") {
			$prev = $temp;
		} else {
			krsort ( $videos );
			$keys = array_keys ( $videos );
			$prev = $keys ["0"];
		}
	}
	$temp = $key;
}

Vielen Dank für eure Hilfe!
 
Hi Sasser,

kannst du vllt. ein Beispiel-Array und die erwünschte Ausgabe posten?
Ich gerade mal folgendes zusammengebastelt:
PHP:
<?php

function getPrev($arr, $needleKey) {
  $keys = array_keys($arr);
  $values = array_values($arr);
  
  $keyIdx = array_search($needleKey, $keys);
  if ($keyIdx !== false && $keyIdx != 0) {
    return $values[$keyIdx-1];
  }
  if ($keyIdx == 0) {
    return $values[count($keys)-1];
  }
  return false;
}

$arr = array(1 => 'a', 3 => 'c', 5 => 'f', 2 => 'z');
var_dump(getPrev($arr, 1));
Du kannst es ja mal ausprobieren und sagen, ob es nach deinen Wünschen funktioniert ;)
 
Zurück