$array = explode (Als Integer?)

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

  • $array = explode (Als Integer?)

    Hi,
    ich löse folgendes Datum auf:
    PHP-Code:
    $datum '23.10.2008' 
    Mit:
    PHP-Code:
    $array explode("."$datum); 
    Nun sind $array[0] bis $array[1] aber Strings und keine Integer.
    Obwohl nur zahlen drin stehen.
    Mit is_int() wollte ich abfragen, ob die Arraywerte alle Integer sind.
    Aber wie frage ich dies ab, wenn alle als Strings exploded wurden?

    (Ich baue eine Funktion um ein Datum auf seine Gültigkeit zu überprüfen)

  • #2
    foreach + is_numeric, ansonsten array_map mit intval, wenn du die strings zu integers casten willst. Musst du später mit den Einzelteilen des Datums arbeiten, dass du es explodest? Schau dir mal check_date im Manual an. Ansonsten lass es ganz und arbeite mit einem Regulären Ausdruck zur Validierung.


    Grüße
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      checkdate.
      Nette Funktion.
      Habe nach den falschen Kriterien gesucht.
      Dann mal mit checkdate.

      PHP-Code:
          $datum '23.10.2008';
          
      $array = array();
          
      $array explode("."$datum);

          echo 
      checkdate($array[1], $array[0], $array[2]); 
      Es folgt keinerlei Auswertung.
      Bei
      echo checkdate(12, 05, 2008);
      Jedoch schon. Warum nicht mit den Arrays...
      Ich finds schon raus

      Kommentar


      • #4
        Warum zum teufel ist:
        PHP-Code:
        checkdate('10','2d3','2d008'
        TRUE ?
        Wird 'd' als Day erkannt oder was?
        Was bringt mir eine Funktion, die nicht wirklich checked, ob es ein DATUM ist...
        Zuletzt geändert von phpMorpheus2; 23.10.2008, 10:08.

        Kommentar


        • #5
          Caste einfach die Strings auf Integer.

          PHP-Code:
          function int_array($arr) {
              foreach (
          $arr as &$val)
                  
          $val = (int)$val;

              return 
          $arr;
          }

          $array int_array(explode('.'$datum)); 

          Kommentar


          • #6
            Also da checkdate() ja nicht wirklich auf alles überprüft, ob nun wirklich ein Datum mit zahlen etc. da ist, muss ich weiter validieren.

            PHP-Code:
                $datum '23.10.2008';
                
            $array = array();
                
            $array explode("."$datum);
                echo 
            is_numeric($array[0]);
                echo 
            is_numeric($array[1]);
                echo 
            is_numeric($array[2]);
                
                echo 
            var_dump(checkdate((int)$array[1], (int)$array[0], (int)$array[2])); 

            Kommentar


            • #7
              Gibt es einen Grund, dass du das Datum so streng in dieses Format quetschst? Mit strtotime und date erlaubst du deinem Kunden einen Haufen mehr an Formaten, hast durch die Umwandlung mit date trotzdem dein gewünschtes Format

              Kommentar

              Lädt...
              X