string bearbeiten...

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

  • string bearbeiten...

    ich habe folgenden wert:
    tke000004567

    nun interessiert lediglich die zahl hinten (wieviele stellen
    sie hat, ist nicht bekannt) - also ohne vorangehende nullen:
    4567

    habe es folgendermaßen gelöst:
    PHP Code:
    $user_info_id ="tke000004567";
    $user_info_id=str_replace("tke","",$user_info_id);
    while(
    $user_info_id[0]=="0"){
       
    $user_info_id[0]="d";
       
    $user_info_id=str_replace("d","",$user_info_id);

    geht das auch eleganter

    danke
    (-:
    Bookmarks:·Bilder·Jobs·Recht·
    kostenloser Webkataloge-Assistent

  • #2
    Re: string bearbeiten...

    Original geschrieben von kill_bill
    geht das auch eleganter
    ja...

    regex 1-9

    dann strlen()
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Comment


    • #3
      Re: Re: string bearbeiten...

      Original geschrieben von Abraxax

      regex 1-9
      dann strlen()
      die zahl kann aber durch aus auch 45601 sein...
      (-:
      Bookmarks:·Bilder·Jobs·Recht·
      kostenloser Webkataloge-Assistent

      Comment


      • #4
        probier mal
        PHP Code:
        $zahl='irgendwas0000045601';
        $zahl=(int)preg_replace('%[^1-9]%'''$zahl);
        echo 
        ': - :'.$zahl.': - :'.strlen($zahl); 
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          oder ganz lustig
          PHP Code:
          $zahl intval(strrev(intval(strrev($zahl)))); 
          natürlich nicht performant, aber zum spielen siehs gut aus

          Comment


          • #6
            @all thanx

            Original geschrieben von mrhappiness
            probier mal
            PHP Code:
            $zahl='irgendwas0000045601';
            $zahl=(int)preg_replace('%[^1-9]%'''$zahl);
            echo 
            ': - :'.$zahl.': - :'.strlen($zahl); 
            Ergebnis: : - :4561: - :4 - somit falsch

            (richtige Ergebnis müßte allerdings 45601 sein)


            Original geschrieben von asp2php
            PHP Code:
            $zahl intval(strrev(intval(strrev($zahl)))); 
            klappt

            aber wenn du schreibst, es sei nicht so perform, kann ich da besser bei meiner lösung bleiben?

            PHP Code:
            $user_info_id ="tke000004567";
            while((int)
            $user_info_id[0]=="0"){
               
            $user_info_id[0]="d";
               
            $user_info_id=str_replace("d","",(int)$user_info_id);

            (-:
            Bookmarks:·Bilder·Jobs·Recht·
            kostenloser Webkataloge-Assistent

            Comment


            • #7
              dann wandel happys variante etwas ab:
              Code:
              $zahl=(int)preg_replace('%[a-z]%i', '', $zahl);
              Kissolino.com

              Comment


              • #8
                @wurzel - dass funktioniert.

                habe mal ein test gemacht:


                performance via microtime - 100 durchläufe
                platz 3: meine lösung
                c: - :45601: - :0.008387

                platz 2: wurzels lösung
                b: - :45601: - :0.00318

                platz 1: asp2phps lösung
                a: - :45601: - :0.002631

                (-:
                Bookmarks:·Bilder·Jobs·Recht·
                kostenloser Webkataloge-Assistent

                Comment


                • #9
                  sind da eigentlich IMMER führende nullen?

                  dann könnte das noch schneller sein:
                  PHP Code:
                  echo (int)strstr($zahl,'0'); 
                  Kissolino.com

                  Comment


                  • #10
                    @wurzel - du willst ja nur gewinnen


                    ja, da sind immer führende nullen - leider habe ich gerade das testscript vernichtet - aber dennoch danke
                    (-:
                    Bookmarks:·Bilder·Jobs·Recht·
                    kostenloser Webkataloge-Assistent

                    Comment


                    • #11
                      Original geschrieben von kill_bill
                      @wurzel - du willst ja nur gewinnen
                      OffTopic:
                      ich steh auf die adrenalinausschüttung bei jeder gesparten millisekunde ... los, geh messen
                      Kissolino.com

                      Comment


                      • #12
                        OffTopic:
                        genau, ich will mal schaun, ob ich dennoch die Führung behalte

                        Comment


                        • #13
                          nagut ... aber da ich nicht schon wieder der letzte werden will, lasse ich meinen da raus
                          (-:
                          Bookmarks:·Bilder·Jobs·Recht·
                          kostenloser Webkataloge-Assistent

                          Comment


                          • #14
                            der versuchsaufbau:
                            PHP Code:
                            $temptime=microtime();$i=0;
                            while(
                            $i<100){
                            $zahl='irgendwas0000045601';
                            $zahl intval(strrev(intval(strrev($zahl))));
                            $i++;
                            }
                            $nowtime=microtime()-$temptime;
                            echo 
                            'a: - :'.$zahl.': - :'.$nowtime;

                            //////////
                            $temptime=microtime();$i=0;
                            while(
                            $i<100){
                            $zahl='irgendwas0000045601';
                            $zahl=(int)preg_replace('%[a-z]%i'''$zahl);
                            $i++;
                            }
                            $nowtime=microtime()-$temptime;
                            echo 
                            '<br>b: - :'.$zahl.': - :'.$nowtime;

                            //////////
                            $temptime=microtime();$i=0;
                            while(
                            $i<100){
                            $zahl='irgendwas0000045601';
                            $zahl= (int)strstr($zahl,'0');
                            $i++;
                            }
                            $nowtime=microtime()-$temptime;
                            echo 
                            '<br>c: - :'.$zahl.': - :'.$nowtime;

                            ////////// 
                            das ergebnis:

                            a: - :45601: - :0.002621
                            b: - :45601: - :0.003246
                            c: - :45601: - :0.001431

                            na, dann man
                            (-:
                            Bookmarks:·Bilder·Jobs·Recht·
                            kostenloser Webkataloge-Assistent

                            Comment


                            • #15
                              @asp2php
                              Kissolino.com

                              Comment

                              Working...
                              X