Teil von  SELFPHP   Teil von  Code Snippets / PHP / Arrays
Professional CronJob-Service

Suche

International PHP Conference


WebTech Conference


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 
PHP Summit


Software Architecture Summit


:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
HTML5 Days


JavaScript Days


:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Ein Array als graphischen Tabellendump darstellen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen




Beispielaufgabe

Ein Array - auch multidimensional - soll als graphischer Tabellendump dargestellt werden.



Beschreibung

Die folgende Funktion "DumpArrayToTable" legt zu Beginn einen Random-Farbwert für den Tabellenrand fest (auch bei rekursiven Funktionsaufrufen). Nach dem geprüft wurde, ob der aktuell übergebene Wert ein Array ist - wenn nicht, dann wird der Wert in ein Array umgewandelt - durchläuft die Funktion alle Array-Elemente und Array-Werte. Ist eine weitere Dimension vorhanden, ruft sich die Funktion erneut selbst auf (Rekursion), ist keine weitere Dimension vorhanden, dann wird der aktuelle Wert ausgegeben. Als kleines Extra, wird beim Zeigen auf eine Tabellenzelle, der Type des Wertes als Tooltip angezeigt, auch bei den Zellen der Spaltenüberschriften.




<?PHP
  
function DumpArrayToTable $arDest )
  {
    
// Random-Farbe fuer den Rand der Tabellen.
    
$iBorderColor str_pad mt_rand 0999999 ), 6,
                              
'0'STR_PAD_LEFT );

    print ( 
'<table cellpadding="0" cellspacing="5" ' );
    print ( 
'style="border: 4px solid #' $iBorderColor '; ');
    print ( 
'font-family: Courier New; font-size: .9em;">' );

    
// Wenn kein Array, dann Input in ein Array umwandeln.
    
if ( ! is_array $arDest[0] ) )
    {
      
$arDest = array ( $arDest );
    }

    print ( 
'<tr>' );

    
// Schluessel des Arrays als Tabellenspaltenueberschrift.
    
foreach ( array_keys $arDest[0] ) as $strTmpT )
    {
      
$strType 'Type: ' gettype $strTmpT );

      print ( 
'<td title="' $strType '" style="text-align: center;' );
      print ( 
' font-weight: bold; border: 2px solid #000; padding:' );
      print ( 
' 3px; background-color: #ccc;">' $strTmpT '</td>' );
    }

    print ( 
'</tr>' );

    
// Array durchlaufen.
    
foreach ( $arDest as $arTmpElm )
    {
      print ( 
'<tr>' );

      foreach ( 
$arTmpElm as $strTmpVal )
      {
        
$strType 'Type: ' gettype $strTmpVal );

        print ( 
'<td title="' $strType '" style="text-align: ' );
        print ( 
'center; border: 2px solid #000; padding: 3px;">' );

        if ( 
is_array $strTmpVal ) && ! empty ( $strTmpVal ) )
        {
          
// Wenn ein Array in einem Array, dann
          // rekursiv DumpArrayToTable aufrufen.
          
DumpArrayToTable $strTmpVal );
        }
        else
        {
          if ( ! empty ( 
$strTmpVal ) )
          {
            print ( 
$strTmpVal );
          }
          else
          {
            
// Wenn aktuelles Array-Element leer ist,
            // dann Tabellenzelle mit "empty" markieren.
            
print ( 'empty' );
          }
        }

        print ( 
'</td>' );
      }

      print ( 
'</tr>' );
    }

    print ( 
'</table>' );
  }
?>



Anwendungsbeispiel

<?PHP
  
// Test-Array
  
$arT = array (
                 array (
                         
'A' => 1,
                         
'B' => 2,
                         
'C' => NULL,
                         
'D' => 4,
                         
'E' => 5
                       
),
                 array (
                         
'A' => 1,
                         
'B' => 2,
                         
'C' => 3,
                         
'D' => 4,
                         
'E' => 5
                       
),
                 array (
                         
'A' => 1,
                         
'B' => 2,
                         
'C' => 3,
                         
'D' => array (
                                        array (
                                                
1,
                                                
2,
                                                
3,
                                                
4,
                                                
5
                                              
),
                                        array (
                                                
6,
                                                
7,
                                                
8,
                                                
9,
                                                
10
                                              
),
                                        array (
                                                
11,
                                                
12
                                                array (
                                                        array (
                                                                
11 => 1,
                                                                
13 => 2,
                                                                
15 => 3,
                                                                
17 => 4,
                                                                
19 => 5
                                                              
),
                                                        array ( 
                                                                
11 =>  6,
                                                                
13 =>  7,
                                                                
15 =>  8,
                                                                
17 =>  9,
                                                                
19 => 10
                                                              
),
                                                        array (
                                                                
11 => 11,
                                                                
13 => 12,
                                                                
15 => 13,
                                                                
17 => 14,
                                                                
19 => 15
                                                              
),
                                                        array (
                                                                
11 => 16,
                                                                
13 => 17,
                                                                
15 => 18,
                                                                
17 => 19,
                                                                
19 => 20
                                                              
),
                                                      ),
                                                
14,
                                                
15
                                              
),
                                        array (
                                                
16,
                                                
17,
                                                
18,
                                                
19,
                                                
20
                                              
),
                                        array (
                                                
21,
                                                
22,
                                                
23,
                                                
24,
                                                
25
                                              
)
                                      ),
                         
'E' => NULL
                       
)
               );

  
DumpArrayToTable $arT );
?>



Ausgabebeispiel: Browseransicht

ABCDE
12empty45
12345
123
01234
12345
678910
1112
1113151719
12345
678910
1112131415
1617181920
1415
1617181920
2122232425
empty








 




:: Premium-Partner ::

Webhosting/Serverlösungen

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 

:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Datei in mehrere Dateien aufsplitten

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Statusinformationen zu den Speicher-Engines des Servers anzeigen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2007-2014 E-Mail PHP Code Snippets - Daniel Kreßler, d.kressler@selfphp.de