Referenzen Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Referenzen Problem

    Irgendwie blick ich durch die Referenzen immer noch nicht richitg durch. Ich möchte eine rekursive Funktion schreiben, die alle Einträge bearbeitet.

    PHP-Code:
    $arr = array('Zeile11'=>array(
                                    
    'Zeile21'=>'Wert1',
                                    
    'Zeile22'=>'Wert2',
                                    
    'Zeile23'=>'Wert3'),
                       
    'Zeile12'=>array(       
                                    
    'Zeile21'=>'Wert1',
                                    
    'Zeile22'=>'Wert2',
                                    
    'Zeile23'=>'Wert3')
             )

    function 
    rekursion($arr){
       
          foreach(
    $arr as $key=>$value) {

              if(
    is_array($value)){

                    
    rekusion($value)

             }else{

                    
    $value $value ' changed';

             }
          }
    }

    rekusion($arr); 
    OK, wo muss das & hin und warum? Übrigens weiß ich, dass es in PHP 5 die Funktion array_walk_recursiv() dafür gibt. Ich muss PHP4 nutzen und mir geht es um das Verständnis.
    Zuletzt geändert von MasterG; 07.07.2006, 17:00.

  • #2
    Warum Referenz? Nutze return und geb das Ergebnis nach oben durch.

    Ansonsten ist deine PHP Version in bezug auf Referenzen noch wichtig, weil sich zwischen PHP5 und 4 ein wenig was geändert hat.

    Kommentar


    • #3
      Variablen druchreichen will ich nicht, aus Performance Gründen. Wenn ich auf PHP5 umsteige würde ich das dann auch mit array_walk_recursiv() machen.

      Kommentar


      • #4
        Re: Referenzen Problem

        Original geschrieben von MasterG
        OK, wo muss das & hin und warum?
        Ist das & in der Funktionsdefinition, so wird der Parameter in allen Aufrufen (*always) als Referenz übergeben. Ist das & im Funktionsaufruf, so ist der Parameter in diesem Aufruf als Referenz.

        *Steht so im Manual (always)

        Kommentar


        • #5
          Ok das hab ich jetzt in den Kopf bekommen. Aber das hilt mir nicht wirklich bei meiner speziellen Funktion. Wie verändere ich in der Funktion den aktuelle Wert des Arrays?

          Kommentar


          • #6
            -
            Zuletzt geändert von tcpip; 07.07.2006, 20:57.

            Kommentar


            • #7
              -
              Zuletzt geändert von tcpip; 07.07.2006, 20:57.

              Kommentar


              • #8
                -
                Zuletzt geändert von tcpip; 07.07.2006, 20:57.

                Kommentar


                • #9
                  sorry war alles unrichtig, ich habe mich vertan...die Hitze..
                  Zuletzt geändert von tcpip; 07.07.2006, 19:59.

                  Kommentar


                  • #10
                    Vorweg vielen Dank für die Mühe. So richtig hat es bei mir aber immer noch nicht klick gemacht.
                    Zuletzt geändert von MasterG; 08.07.2006, 22:59.

                    Kommentar


                    • #11
                      Naja wieso hast Du Deine Post gelöscht?
                      Zuletzt geändert von MasterG; 08.07.2006, 22:58.

                      Kommentar


                      • #12
                        Die Posts waren falsch.
                        Zuletzt geändert von tcpip; 07.07.2006, 20:58.

                        Kommentar


                        • #13
                          ?
                          Zuletzt geändert von MasterG; 08.07.2006, 22:57.

                          Kommentar

                          Lädt...
                          X