for / foreach problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


    • #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.

      Comment


      • #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

        Comment


        • #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?

          Comment


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

            Comment


            • #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

              Comment


              • #8
                *lol* ja Grundlagen...

                Comment


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

                  Comment


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

                    Comment


                    • #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

                      Comment


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

                        Comment

                        Working...
                        X