for / foreach problem

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

  • for / foreach problem

    Hallo zusammen,
    Ich habe ein riesiges problem .
    Ich probier es hier in einem beispiel zu beschreiben, welches aber nicht meinem 'echten' problem entspricht, aber ich hoffe es wird mir helfen es 'selber' zu lösen.

    Code:
    function search($arr, $file)
    {
    foreach ($arr as $such => $ersetz)
    {
    $dat = split($such, $file); 
    $dat = split($ersetz, $dat[1]);
    echo $dat[0];
    }
    }
    Wenn ich diese funktion Anwende:

    Code:
    $arr = array();
    $arr['aa'] = 'xx';
    $arr['bb'] = 'ff';
    search($arr, 'BBBBaaBBBBbb');
    kommt folgendes raus:

    Code:
    BBBBbb
    Irgendwie bekommt ja da $dat[0] jedes mal einen Anderen wert, bei jedem durchgang. Ich möchte ja aber nur den letzten, welcher aber auch schon die vorhergehenden durchlaufen hat.

    Hoffe ihr könnt mir folgen und mit behilflich sein,
    Gruss Andy
    Bücher für Programmierer

  • #2
    Re: for / foreach problem

    Original geschrieben von andygyr
    Hoffe ihr könnt mir folgen und mit behilflich sein,
    ja wobei denn behilflich?
    du hast eine funktion und das ergebnis genannt, aber nicht das eigentliche problem. was möchtest du denn bitteschön erreichen?
    suchst du nur return?

    Kommentar


    • #3


      PHP-Code:
      function search($arr$file)
      {
        
        foreach (
      $arr as $such => $ersetz)
        {
          
      $dat split($such$file); 
          
      $dat split($ersetz$dat[1]);
          echo 
      $file $dat[0];
        }

      So?

      Wenn nicht, dann erzähle was dein Ziel und was dein Problem dabei ist.

      Kommentar


      • #4
        Ne.

        Ich möchte das das resultat nicht BBBBbb ist sondern BBBBxxBBBBff.
        Wen das Foreach einmal durch ist hat $dat[0] den wert: BBBBxxBBBBbb !
        Bei der zweiten shclaufe(und somit am ende) den wert: BBBBaaxBBBBff
        Und ich suche BBBBaaxBBBBbb !

        Das heisst das beim zweiten durchlauf der wert des ersten durchlaufes genutzt werden muss! Wie mach ich das?
        Bücher für Programmierer

        Kommentar


        • #5
          warum nimmst du nich str_replace?
          Ich möchte das das resultat nicht BBBBbb ist sondern BBBBxxBBBBff.
          Bei der zweiten shclaufe(und somit am ende) den wert: BBBBaaxBBBBff
          Und ich suche BBBBaaxBBBBbb !
          Was denn nun?

          Das heisst das beim zweiten durchlauf der wert des ersten durchlaufes genutzt werden muss! Wie mach ich das?
          Mein Posting angesehen?

          Kommentar


          • #6
            echo str_replace(array_keys($arr),$arr,$str);

            Kommentar


            • #7
              Dankeeeeee...

              Verdammt ich hab ca. 4 stunden für eine eigene Funktion getüftelt dabei gibts so was ja schon..
              Bücher für Programmierer

              Kommentar


              • #8
                *lol* ja Grundlagen...

                Kommentar


                • #9
                  das man str_replace auch mit arrays machen kann wusste ich eben noch nicht
                  Bücher für Programmierer

                  Kommentar


                  • #10
                    abgesehen davon, dass das im Manual steht, hast du nichmal versucht str_replace mit Strings zu verwenden.

                    Kommentar


                    • #11
                      Ja, das geht eben nicht^^ in wirklichkeit hatte ich ein bisschen ein grösseres Problem, welches mit str_replace mit strings nicht gegangen wäre.
                      Bücher für Programmierer

                      Kommentar


                      • #12
                        ja klar, aber so gehts. (obwohl es einem str_replace in einer schleife ähnelt aber nichtmal so performant ist.)

                        Kommentar

                        Lädt...
                        X