[PHP5] erkennen ob Array mehrere Dimensionen hat?

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

  • [PHP5] erkennen ob Array mehrere Dimensionen hat?

    Hallo,

    gibt es irgendwie eine Möglichkeit per Funktion oder so herrauszubekommen ob das übergebene Array mehrere Dimensionen hat?

    Gruß StefanR

  • #2
    PHP Code:
    function isNDimensional($array) {
        foreach (
    $array as $val) {
            if (
    is_array($val)) {
                return 
    true;
            }
        }
        
        return 
    false;
    }




    $array_1 = array(
        
    'foo',
        
    'bar',
        
    'blah?',
    );

    $array_2 = array(
        
    'foo',
        array(
    'blub'),
        
    'blah?',
    );

    var_dump(isNDimensional($array_1));
    var_dump(isNDimensional($array_2)); 
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Comment


    • #3
      Hallo, danke erstmal für deine Antwort aber das bringt mich in meinem Fall nicht weiter, da ich durch eine while Schelife erstelltes Array habe wo denn wiederrum die Datensätze aus der Datenbank drin sind. Also so:
      PHP Code:
      $array[]['stid'
      so und wenn ich das so mache wie bei dir kann ich im Endeffekt ja nicht mehr auf die Tabellenspalten namentlich zu greifen. Ich möchte nämliche bestimmte Spalteninhalte umformatieren zum Beispiel das Datum oder fiesen Code ausperren.

      PHP Code:
      function getAll($stid=-1)
              {
                  if (
      $stid===-1)
                  {
                      
      $sql="SELECT a.stid,a.uid,a.kid,a.lastupdate,a.created,
       a.html,a.smileys,a.urls,a.titel, a.hometext, a.bodytext, b.name FROM
       artikel AS a , user AS b WHERE a.uid=b.uid LIMIT 50"
      ;
                      
      $result=$this->db->query($sql);
                  
                      while (
      $row=$this->db->fetchAssoc($result))
                      {
                          
      $artikel[]=$row;    
                      }
                  }
                  
                  
      //Daten formatieren
                  
      $artikel=$this->prepare($artikel);
                  
                  return 
      $artikel;
              }
              
              function 
      prepare($array)
              {
                  
      //durchläuft das Array welches übergeben wurde 
                  //und formatiert relevante Daten
                  
      for ($i=0$i<count($array);$i++)
                  {
                      
      $array[$i]['created']=date('d.m.Y H:i:s',$array[$i]['created']);                
                  }
                  return 
      $array;    
              } 
      Gruß

      Comment


      • #4
        warum machst dud as nicht in der while-schleife zum auslesen aus der datenbank?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          Weil ich denn jeden Datensatz übergeben muss also an $artikel[] und ich mir so nen bisschen Schreibarbeit ersparen wollte, da die Tabelle sehr groß ist.

          Comment


          • #6
            $artikel[] = prepare($row); in der schleife


            die funktion prepare sollte dann ja einfach anzupassen sein
            Ich denke, also bin ich. - Einige sind trotzdem...

            Comment


            • #7
              Achso ja stimmt das auch ne Möglichkeit.

              Danke

              Comment

              Working...
              X