mehrdimensionales Array ausgeben?

  • Hi!

    Steh derzeit voll auf der Leitung! Ich schaffs leider nicht ein mehrdimensionales Array vernünftig auszugeben. Mal ein ganz simples Beispiel.

    Array:

    Code
    $my_array=array("Daniel"=>array("Kinder"=>4,"Enkel"=>7));

    Nun möchte ich dass es z.B. so ausgewertet wird: Daniel hat 4 Kinder und 7 Enkelkinder!

    Bitte helft mir! Danke!

  • so?

    Code
    $my_array=array("Daniel"=>array("Kinder"=>4,"Enkel"=>7));
    for($x=0;$x<sizeof($my_array);$x++) { 
    	$sub_array = current($my_array);
        echo key($my_array)." hat ".$sub_array['Kinder']." Kinder und ".$sub_array['Enkel']." Enkelkinder!";
    }
  • DANKE!

    Aber vielleicht kannst du mir ja gleich noch mal helfen, habs leider noch nicht so mit diesen mehrdimensionalen Arrays! Wie mach ich es denn wenn mein Array mehrere Einträge enthält?

    z.B.:

    Code
    $my_array=array("Daniel"=>array("Kinder"=>4,"Enkel"=>7), "Christian"=>array("Kinder"=>1,"Enkel"=>4));

    Wär dir sehr dankbar! Aber ich bekomms einfach nicht hin! Denk ich sitz schon zu lange davor und seh den Wald vor lauter Bäumen nicht!

    Danke!

  • Arghh ich bin DUMM... ich hab ein Kommando in der Schleife vergessen, darum kanns nicht gehen, sorry!!!!

    Code
    for($x=0;$x<sizeof($my_array);$x++) { 
    	$sub_array = current($my_array);
        echo key($my_array)." hat ".$sub_array['Kinder']." Kinder und ".$sub_array['Enkel']." Enkelkinder!";
    	next($my_array);
    }


    Versuch das mal ;)
    Ich hatte vergessen dem System zu sagen, dass es anch der Abarbeitung den naechsten Eintrag nehmen soll *doh*

    MfG
    Daniel

  • Es tut mir leid, brauch aber noch mal vielleicht deine Hilfe! Das Auswerten funktioniert ja jetzt ganz gut! Jetzt hab ich natürlich Probleme dieses so zu Erstellen wie ich sie brauche! Es geht dabei nicht um Opa, Kinder und Enkelkinder sondern um Spieler (Handball), ihre Tore die sie geschossen haben und die 7m davon. Und genau das soll in so ein Array verpackt werden, wenn möglich. Bin aber auch für andere Vorschläge offen! Derzeit werden ja Spieler, Tore und 7m in einzelne Array's verpackt, aber eigentlich sollts ja so aussehen:

    $my_array = array("Daniel"=>array("Tore"=>4,"Siebener"=>2), "Christian"=>array("Tore"=>11,"Siebener"=>4));

    Das Problem für mich ist dass die Tore bzw. 7m erst im Formular eingegeben werden. Vielleicht weißt du auch für das eine Lösung!

    ml.php:

  • ml.php

    und in deiner auswertung.php (Achtung: Nicht kontrolliert! Tippfehler passieren!)

    Code
    $count = 0;
    $my_array = array();
    while($count < $_POST['maxid']) {
    	array_push($my_array, $_POST['checkbox'.$count] => array("Tore" =>  $_POST['tore'.$count], "Siebener" => $_POST['siebener'.$count]));
    }
  • Danke mal für deine großartige Hilfe!

    Hab mich aber anscheinend etwas falsch ausgedrückt! Drum hab ich mal hier das Beispiel: http://www.ivanman.at/Sonstiges/ml.php

    Es sollen nur die Namen, Tore und 7m von denen übergeben werden die auch angehakt sind.

    Außerdem bekomm ich bei deinem "Auswertungs" - Script folgenden Fehler:

    Zitat

    Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/10266/http://ivanman.at/www/Sonstiges/auswertung.php on line 8

    Werd mal schaun ob ich selbst den Fehler find!

    Trotzdem DANKE!

  • ich gebs gleich auf... schon wieder eine solche Dummheit gemacht
    Ich darf nicht array_push sondern muss array_merge nehmen um indexes zu haben *doh*

    Code
    $count = 0;
    $my_array = array();
    while($count < $_POST['maxid']) {
            $count++;
    	if(isset($_POST['checkbox'.$count])) {
    		array_merge($my_array, array($_POST['checkbox'.$count] => array("Tore" =>  $_POST['tore'.$count], "Siebener" => $_POST['siebener'.$count])));
    	}
    }

    Mit der IF-Schleife kontrolliert er, ob ein Haken gesetzt wurde und laedt es nur ins Array wenn das der Fall ist (sofern ich nicht wieder Bloedsinn gemacht habe ^^)

  • Kann noch nicht wirklich sagen obs funktioniert weil das Script zu lange dauert und ich nicht den Safe-Mode von PHP bei mir deaktivieren kann!

  • keine Angst, liegt nicht an deinem Webspace, sondern daran dass ich vergessen hatte den Wert in der While Schleife zu inkrimentieren...

    Ich denke ich werde jetzt schlafen gehen, bin totmuede und was anstaendiges krieg ich so eh nicht mehrhin wie du siehst *gaehn* :(

    Hab das letzte Script oben korrigiert

  • Das hab ich befürchtet. Hab in der Auswertung.php gleich darunter versucht das array mittels deiner methode auszuwerten mit dem ergebnis das die seite leer bleibt.

  • ml.php:

    auswertung.php:


  • Ok jetzt probiers mal damit ^^
    Tut mir echt leid mit den vorangehenden Scripts, dieses funzt endlich :)

  • So hab ich's getestet:


    und das funktionniert!