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:
<?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.
 


Andere Einträge