Frage zu for -und foreach Schleife

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zu for -und foreach Schleife

    Ich habe 2 Varianten an schleifen beide Funktionieren soweit auch:

    Variante1 "FOR")

    Quellcode

    1. $kategorie_arry=array('oben','unten','rechts','links');
    2. for($i=0; $i < count($kategorie_arry); $i++)
    3. {
    4. echo $kategorie_arry[$i];
    5. }


    Variante2 "FOREACH")

    Quellcode

    1. $kategorie_arry=array('oben','unten','rechts','links');
    2. foreach($kategorie_arry as $anzeige)
    3. {
    4. echo $anzeige;
    5. }


    Nun als erstes würde ich gerne wissen welche Variante halt besser ist? (gehe von 2 aus da es ja weniger an zeilen und bearbeitung beinhaltet)
    Dann würde es mich interessieren wie mache ich aus dem echo eine Variable...

    also zb.: soll er statt das echo auszugeben etwas in einer Variable dort speichern. Die Variable muss ja aber imemr andere bezeichnung haben, wie mache ich das?

    Sprich er soll wenn er durchgelaufen ist dann zb.: bei 4 einzträge im arry ausgeben und halt drinen den wert des Arrays:
    $variable0 = Oben;
    $variable1 = Unten;
    $variable2 = rechts;
    $variable3 = links;

    Wie ich die werte zuweise ist nicht das problem. eher wie mache ich das die Variable automatisch andere bezeichnung hat?
  • welchen Sinn macht es n viele Variablen nach dem Schema $variableN zu bennenen?
    Willst du ein Array befüllen, dann geht das so:

    Quellcode

    1. $full = array();
    2. foreach($kategorie_arry as $anzeige)
    3. {
    4. $full[] = $anzeige;
    5. }


    Das kopiert aber auch nur das eine in das andere Array - was hast du denn überhaupt vor?

    foreach Schleifen sind meistens besser, weil bei ihnen nicht relevant ist, was der Index des Array ist.
    Bei der for Schleife sind Lücken im Array fatal.
  • Auch wenn ich mich d0nuts Meinung anschließe, dass kein erkennbarer tieferer Sinn hinter deinem Wunsch steckt, poste ich dir mal eine mögliche Lösung:

    Quellcode

    1. $kategorie_arry=array('oben','unten','rechts','links');
    2. for($i=0; $i < count($kategorie_arry); $i++)
    3. {
    4. eval('$newArray' . $i . ' = $kategorie_arry[$i]');
    5. }

    Konnte es jetzt leider nicht testen, aber sollte meinen Kenntnissen nach funktionieren.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.