array & foreach

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

  • array & foreach

    Hallo zusammen

    Ich hätte mal eine Performance frage.
    Und zwar habe ich einen mehrdimensionalen array mit 10 Einträgen und gehe dort in die foreach schleife. In dieser Schleif preg_replace
    Mit 1000 einträgen im array geht dies ja noch. Aber wenn es mehr werden geht doch die Performance flöten.

    Gibt es da eine bessere methode?

    Danke schonmal für eure Tipps.

    Gruss

    Olli

  • #2
    Der Performancekiller ist preg_replace und nicht foreach, wenn du auf str_replace umsteigen kannst, dann wird sich das um das Vielfache verbessert, wenn nicht dann musst du leider damit leben, oder so ändern dass du preg_replace nicht in einer Schleife einsetzen musst.

    Kommentar


    • #3
      Hi

      Danke für deine Antwort.

      Was ist denn besser? str_replace oder schauen das es nicht in der schlaufe ist? Und wenn das zweite, wie müsste ich das anstelen? Bei einem normalen array kann ich ja einfach zwei array suche und ersetzen machen und diese in den preg_replace einfügen.

      Aber wie sieht es denn mit dem mehrdimensionalen array aus? Benötige da 4 parameter daraus. einerseits das suchwort, und dann für das ersetzen die anderen drei.

      Was bei str_replace glaub nicht geht wäre \i damit er die klein und grossschreibung nicht beachtet oder?

      Gruss

      Olli
      Zuletzt geändert von Olli4; 18.11.2008, 13:13.

      Kommentar


      • #4
        Optimieren. Wie asp2php schon sagt, wenn du den regulären Ausdruck umgehen kannst, wird das bestimmt besser. Zeig doch mal her, was du so treibst.

        Kommentar


        • #5
          Erstmal brauchst du keine Schleife (vermutlich).
          Wenn es denn mit diesem geht: http://de3.php.net/manual/de/functio...-recursive.php

          Und wenn du Text ersetzen willst, bleiben doch nur wenige PHP Funktionen, mit denen das geht. str_replace() und strtr() sind auf jeden Fall fixer als das Preg oder ereg Gedöns.
          Bei strtr() achte darauf, das du die 2 Parametrige Variante wählst. Die 3 Parametrige ist noch weniger Unicodefest.
          Wir werden alle sterben

          Kommentar


          • #6
            HI

            Der array sieht wie folg aus:
            PHP-Code:
            $meinArray[] = array('feld1' => 'inhaltfeld1''feld2' => 'inhaltfeld2',
            'feld3' => 'inhaltfeld3','feld4' => 'inhaltfeld4'); 
            Die Foreach mit preg_replace
            PHP-Code:
            foreach ($meinArray as $key) {  
                
            $nachricht preg_replace('/'.$key['feld1'].'/i'$key['feld2'], $nachricht);

            Momentan verwende ich nur zwei dinge aus dem Array zum testen.

            Bei preg_replace habe ich den vorteil mit dem i damit er die klein und grossbuchstaben nicht berücksichtigt.

            Vielleicht hilft dir dies ein wenig weiter wie ich es am bessten optimieren könnte.

            Gruss

            Olli
            Zuletzt geändert von Olli4; 19.11.2008, 08:40.

            Kommentar


            • #7
              str_ireplace mal gesehen?

              Kommentar


              • #8
                Hi

                Nein ehrlich gesagt nicht

                Nun ist die frage ob str_ireplace() die beste lösung für mein problem ist in der schleife, oder ob man es noch vesser optimieren kann.

                Gruss

                Olli

                Kommentar


                • #9
                  Probiere selbst aus, denn die Daten dazu hast nur du!

                  Kommentar


                  • #10
                    Hi

                    denke lasse es so danke.

                    Gruss

                    Olli
                    Zuletzt geändert von Olli4; 18.11.2008, 14:09.

                    Kommentar


                    • #11
                      Hi

                      Läuft wunderbar. danke.

                      Gruss

                      Olli
                      Zuletzt geändert von Olli4; 19.11.2008, 09:07.

                      Kommentar

                      Lädt...
                      X