fastix®: Array neu durchnummerieren

Beitrag lesen

»» irgendwie raff ich es heute überhaupt nicht.

[x] Scheint nicht Dein Tag zu sein.
[x] Möglicherweise hast Du an anderer Stelle ein schlechtes  Programmdesign , denn obwohl die Schlüssel des Arrays offensichtlich keine Bedeutung haben willst (oder musst) Du sie neu setzen. Das ein gutes Beispiel dafür, dass man einen Array nach Möglichkeit nicht mit sowas wie
    for ($i=1, $i<count(array); $i++) { foo, bar }
durchhechelt.

»» Habe allerdings auch vergessen dazuzuschreiben das ich das komplatte Array "VKP" wieder mit den neuen Werten in die Session zurückschreiben möchte.

Hm. Bitte ... der folgende Code sieht nur zufällig wie PHP aus.

/*  
Du nimmst Dir einen neuen Array, eine Hilfsvariable und noch einen leeren Array für die alten Keys und eine Variable für die Schlüsselwerte  
*/  
  
$tmp=array();  
$i=0;  
$arKeys=array();  
$key=0;  
  
/*  
Aus einem "Grund" ist Dein erstes Element (Nr. 0) scheinbar nicht gesetzt... Demnnach können wir nicht einfach den Array durchhecheln...  
Wir brauchen die keys von Deinem Array:  
*/  
  
$arKeys=array_keys($_SESSION['VPK']);  
  
/*  
Für jeden  Key:  
*/  
foreach ($arKeys as $key) {  
  # Wir schreiben den Array aus $_SESSION['VPK'][$key] in den neuen Array;  
  # Du beginnst ja bei 1, deshalb das "++$i":  
  $tmp[++$i]=$_SESSION['VPK'][$key];  
}  
  
/*  
Und jetzt wird der Array $tmp Dein neuer $_SESSION['VPK']:  
*/  
$_SESSION['VPK']=$tmp;  
  
/*  
Fast fertig! Wer spielt muss auch aufräumen:  
*/  
unset($tmp, $i, $key, $arKeys);