foreach gibt Fehlermeldung aus

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

  • foreach gibt Fehlermeldung aus

    Hallo. ich hab mal ne Frage.

    Hab garade einen array durchlaufen. Es funktioniert auch wunderbar. Es wird alles brav angezeigt. Aber es wird auch immer die Fehlermeldung angezeigt:

    PHP Warning: Invalid argument supplied for foreach() in datei.php on line 22.

    Gemeint ist das zweite foreach. Ich weiß auch, dass ein Array angegeben werden muss. Aber das genau habe ich doch, oder? $tarif bzw. $laufzeit hat doch das Array "24" und "12". Also müsste das doch auch ohne Fehlermeldung gehen meine ich. Aber finde den Fehler nicht.

    Danke für die Hilfe.

    Quellcode

    1. $preis = array(
    2. 'dom_a' => array(
    3. 'tarifname' => 'Domain Silber',
    4. 'laufzeit' => array (
    5. '24' => array (
    6. 'dauer' => '24 Monate',
    7. 'preis' => '2.99',
    8. 'setup' => '0.00'
    9. ),
    10. '12' => array (
    11. 'dauer' => '12 Monate',
    12. 'preis' => '2.99',
    13. 'setup' => '0.00'
    14. )
    15. )
    16. )
    17. );
    18. $tarif_lz_list = '';
    19. foreach ($preis[$_SESSION['tarif']] as $tarif) {
    20. foreach ($tarif as $laufzeit) {
    21. $tarif_lz_list .= '<p class="laufzeit_item_top"><input type="radio" name="laufzeit" value="'.$laufzeit['dauer'].'" id="laufzeit">&nbsp;'.$laufzeit['dauer'].'</p>';
    22. $tarif_lz_list .= '<p class="laufzeit_item_details">monatlich nur &euro;&nbsp;'.$laufzeit['preis'].' - Setup: &euro;&nbsp;'.$laufzeit['setup'];
    23. $tarif_lz_list .= '<p>&nbsp;</p>';
    24. }
    25. }
    Alles anzeigen
  • Quellcode

    1. $preis = array(
    2. 'dom_a' => array(
    3. 'tarifname' => 'Domain Silber',
    4. 'laufzeit' => array (
    5. '24' => array (
    6. 'dauer' => '24 Monate',
    7. 'preis' => '2.99',
    8. 'setup' => '0.00'
    9. ),
    10. '12' => array (
    11. 'dauer' => '12 Monate',
    12. 'preis' => '2.99',
    13. 'setup' => '0.00'
    14. )
    15. )
    16. )
    17. );
    18. $tarif_lz_list = '';
    19. foreach ($preis[$_SESSION['tarif']] as $tarif) {
    20. foreach ($tarif['laufzeit'] as $laufzeit) {
    21. $tarif_lz_list .= '<p class="laufzeit_item_top"><input type="radio" name="laufzeit" value="'.$laufzeit['dauer'].'" id="laufzeit">&nbsp;'.$laufzeit['dauer'].'</p>';
    22. $tarif_lz_list .= '<p class="laufzeit_item_details">monatlich nur &euro;&nbsp;'.$laufzeit['preis'].' - Setup: &euro;&nbsp;'.$laufzeit['setup'];
    23. $tarif_lz_list .= '<p>&nbsp;</p>';
    24. }
    25. }
    Alles anzeigen


    Habe im 2. foreach aus "$tarif" "$tarif['laufzeit']" gemacht..

    Weiß nicht ob das bereits alles behebt an Fehlern ;D

    Bischen unübersichtlich, also ich mein arg verschachtelt^^
  • Hat leider auchnichts geholfen, aber habe jetzt die Lösung dafür. Komme sogar mit einer foreach-Schelife aus.

    Ich setzte einfach vor der Schleife die Variable $paketpreis mit dem Inhalt

    $preis[$_SESSION['tarif']]['laufzeit'];

    Die erste Schleife fällt dann weg. Der Code sieht dann so aus. Er funktioniert wunderbar. Ichhoffe ich habe das ganze php-konform gelöst.

    Quellcode

    1. $preis = array(
    2. 'dom_a' => array(
    3. 'tarifname' => 'Domain Silber',
    4. 'laufzeit' => array (
    5. '24' => array (
    6. 'dauer' => '24 Monate',
    7. 'preis' => '2.99',
    8. 'setup' => '0.00'
    9. ),
    10. '12' => array (
    11. 'dauer' => '12 Monate',
    12. 'preis' => '2.99',
    13. 'setup' => '0.00'
    14. )
    15. )
    16. )
    17. );
    18. $tarif_lz_list = '';
    19. $paketpreis = $preis[$_SESSION['tarif']]['laufzeit'];
    20. foreach ($paketpreis as $laufzeit) {
    21. $tarif_lz_list .= '<p class="laufzeit_item_top"><input type="radio" name="laufzeit" value="'.$laufzeit['dauer'].'" id="laufzeit">&nbsp;'.$laufzeit['dauer'].'</p>';
    22. $tarif_lz_list .= '<p class="laufzeit_item_details">monatlich nur &euro;&nbsp;'.$laufzeit['apreis'].' - Setup: &euro;&nbsp;'.$laufzeit['setup'];
    23. $tarif_lz_list .= '<p>&nbsp;</p>';
    24. }
    Alles anzeigen