Array-Zeiger auf bestimmten Key setzen
März 2010
Seitens PHP scheint es keine Funktion oder andere Möglichkeit zu geben, den Zeiger eines Arrays (Pointer) an die Position eines bestimmten Schlüssel zu verschieben, um dann beispielsweise den nächsten Wert zu bekommen. Doch lässt sich dieses Problem relativ einfach lösen.
Die Funktion:
Das Anwendungsbeispiel:
Die Funktion:
<?php
function array_set_pointer_to_key(&$array, $key){
reset($array);
$c = 0;
$l = count($array);
while(key($array) !== $key){ // jeden Key überprüfen
if(++$c >= $l) return false; // Array-Ende erreicht
next($array); // Pointer um 1 verschieben
}
return true; // Key gefunden
}
?>
Wenn der Schlüssel gefunden wurde, gibt die Funktion den Wert true zurück und wenn nicht, dann false.Das Anwendungsbeispiel:
<?php
$array = array('b'=>24, 'm'=>58, 'e'=>72, 'p'=>38, 'x'=>83, 'h'=>49);
array_set_pointer_to_key($array, 'e');
echo current($array); # 72
echo next($array); # 38
echo key($array); # p
?>
Die Funktion setzt hier den Zeiger auf den Schlüssel "e", wobei mit den Funktionen next() und key() der nächste Schlüssel ausfindig gemacht wird.
