Ankündigung

Einklappen
Keine Ankündigung bisher.

Switch Case oder str_replace?

Einklappen

Neue Werbung 2019

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

  • Switch Case oder str_replace?

    Ich habe da eine reine Interessensfrage:

    Wenn man sich Literatur über PHP reinzieht, wird immer wieder empfohlen,
    dass man bei Datumsanzeigen, z.B. Wochentag, via Switch Case ins Deutsche umwandeln soll.
    Ist es nicht viel einfacher und ebenso erfolgreich, wenn ich str_replace verwende?

    Z.B so:

    PHP-Code:
    $wochentag date("I");
    $wochentag str_replace("Monday""Montag"$wochentag);
    $wochentag str_replace("Tuesday""Dienstag"$wochentag);
    usw


  • #2
    Es gibt mehrere Möglichkeiten, du musst selbst wissen wie du es haben willst, ich mach es meistens mit einem assoziativen Array das als Schlüssel die englischen Namen und als wert den deutschen haben. Etwa so:

    PHP-Code:
    $tage = array("Monday" => "Montag","Tuesday" => "Dienstag"); 
    und dann einfach

    PHP-Code:
    echo $tage[date("I")]; 
    Kommt halt drauf an wofür du es brauchst. Wenn du es in einem kompletten Datumsstring brauchst (z.B. date("I, d.m.Y")) dann macht str_replace am meisten Sinn

    Kommentar


    • #3
      am einfachsten ist ein array mit den Wochentagen und date('w')

      Kommentar


      • #4
        schonmal getestet was effektiv am schnellsten ist ?
        bei einmaliger nutzung und bei mehrmaliger nutzung !
        ich wuerde mal schaetzen der replace kostet mehr zeit als wenn du ein array mit einer guten suchabfrage nutzt
        woher soll ich wissen was ich denke bevor ich höre was ich sage :confused:

        Kommentar


        • #5
          Zitat von KimKaye Beitrag anzeigen
          schonmal getestet was effektiv am schnellsten ist ?
          bei einmaliger nutzung und bei mehrmaliger nutzung !
          ich wuerde mal schaetzen der replace kostet mehr zeit als wenn du ein array mit einer guten suchabfrage nutzt
          str_replace wird mit sicherheit am langsamsten sein, auch wenn zwischen allen 3 methoden der Unterschied verschwindend gering sein wird. Aber bei dem Array hast du die Daten einmal im Speicher und greifst einfach drauf zu, bei den anderen Methoden musst du jedes mal erst Code ausführen um ans Ergebnis zu kommen

          Kommentar


          • #6
            also den code ganz oben halte ich für völlig übertrieben nach dem prinzip würde man 7 Mal ein str_replace ausführen um an das gewünschte Ergebnis zu kommen

            @kimkaye
            was ist denn in diesem Fall eine erwartete performance?
            was ist ein array mit einer guten Suchabfrage?

            Kommentar


            • #7
              naja ganz einfach, wenn du einen namen im telefonbuch suchst dann faengst du nicht vorne bei a an und suchst so lange bis du bei maier angekommen bist... ich weiss nicht was dir php da an suchabfragen schon so vorgibt.. aber sowas wie for(int i = 0; i < array.length ;i++) ist wohl das dümmste
              am einfachsten ist wohl das ganze einmalig zu sortieren und dann gehts ganz einfach...

              such aus einem array von 1 bis 1000 die zahl 488, dann nimmst du einfach die haelfte und schaust ob sie groesser oder keiner als 488 ist... in dem fall ist 500 > 488 also halbierst du die 500 wieder
              250 > 488 ? NEIN
              375 > 488 ? NEIN
              437 > 488 ? NEIN
              468 > 488 ? NEIN
              489 > 488 ? JA
              479 > 488 ? NEIN
              485 > 488 ? NEIN
              487 > 488? NEIN
              ZAHL IST 488
              so hast du immer nach spaetestens 10 fragen die zahl die du suchst.... (dualzahl!!!)
              10 fragen = 0 - 1024
              11 fragen = 0 - 2048
              12 fragen = 0 - 4096
              usw...
              woher soll ich wissen was ich denke bevor ich höre was ich sage :confused:

              Kommentar


              • #8
                #### INFO ####

                Hier wurden Beiträge gelöscht die nicht zum Thema gehörten.

                Kommentar


                • #9
                  Du brauchst ueberhaupt keinen Array:

                  PHP: setlocale - Manual
                  "Mein Name ist Lohse, ich kaufe hier ein."

                  Kommentar

                  Lädt...
                  X