SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.05.2009, 11:21:37
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
Mehrdimensionales Array als HTML Tabelle

Hallo zusammen,

schonmal jemand probiert ein mehrdimensionales Array als Tabelle auszugeben? Es reicht ja nicht jeweils nur die nächste Dimension mit count() zu zählen um den Colspan zu ermitteln..

Hat jemand sowas schon fertig, sonst muss ich mich selber dran machen.. :| *gerade in Zeitdruck bin*

THX
Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #2  
Alt 20.05.2009, 13:16:21
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Mehrdimensionales Array als HTML Tabelle

Welchen Colspan ?

Sowas ähnliches:

PHP-Code:
function mach_tabelle($tiefe=4)
{
  if ((
$tiefe 1) || ($tiefe >10)) die(" Schachteltiefe falsch!");
  
$rows << $tiefe;
  
$result' <table border="1" cols="'.$tiefe.'" rows="'.$rows.'"> '."\r\n";

  for (
$row 0$row $rows$row++)
  {
    
$result .= '<tr> ';
    for(
$col=0;$col<$tiefe+1;$col++)
    {
      
$rowspan='';
      
$raster << $col;
      
$feld =$rows*$col+$row;
      if (
$col>0$rowspan=' rowspan="'.$raster.'" ';
      if((
$col==0) || (($feld $raster) == 0))
      {
        
$der_neue $row $raster;
        
$result .= "<td $rowspan >Feld: [$col][$der_neue]</td> ";
      }
    }
    
$result .= '</tr> '."\r\n";
  }
  
$result .= '</table> '."\r\n";
  return 
$result;
}

echo 
mach_tabelle(3); 
Nur mit einem Benutzer definierten Array?


Zeige doch mal ein Beispiel Array und wie die fertige Ausgabe aussehen sollte.

Geändert von DokuLeseHemmung (20.05.2009 um 13:31:25 Uhr)
Mit Zitat antworten
  #3  
Alt 25.05.2009, 12:06:46
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Mehrdimensionales Array als HTML Tabelle

hi,

also Tabelle sollte so aussehen wie im Anhang.

Array wäre dann z.b. so:

Code:
Array
(
    [key1] => Array
        (
            [key2] => Array
                (
                    [key4] => Array
                        (
                            [0] => wert1
                            [1] => wert2
                            [2] => wert3
                        )

                    [key5] => Array
                        (
                            [0] => wert4
                            [1] => wert5
                            [2] => wert6
                        )

                    [key6] => Array
                        (
                            [0] => wert7
                            [1] => wert8
                            [2] => wert9
                            [3] => wert10
                        )

                )

            [key3] => Array

            // ...
Jedoch ist die tiefe nicht immer gleich ..
Miniaturansicht angehängter Grafiken
tabelle.png  
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #4  
Alt 25.05.2009, 13:09:58
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Mehrdimensionales Array als HTML Tabelle

Schön!
Dass Werte und Subarrays niemals im gleichen Array stecken, machts einfacher.
Ist das wirklich so?


Wenn ja:
Erstmal muß das Array rekursiv durchlaufen werden um maxrow(depth+1) und maxcol(count of values) herauszufinden. Dann müsste man per "backtrace", von den Blättern ausgehend, die jeweiligen colspan und rowspan der Vorgänger berechnen. Evtl. geht das sogar in einem Durchlauf.


Wenn mich gleich mal die Langeweile plagt, dann bastel ich dir sowas...

Ware nett, wenn du das (oder ein paar) Testarray per var_export() zeigen würdest. Das Abtippen ist mir etwas zu blöd.

Geändert von DokuLeseHemmung (25.05.2009 um 13:10:13 Uhr)
Mit Zitat antworten
  #5  
Alt 25.05.2009, 13:34:07
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Mehrdimensionales Array als HTML Tabelle

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Schön!
Dass Werte und Subarrays niemals im gleichen Array stecken, machts einfacher.
Ist das wirklich so?
JA!

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Wenn ja:
Erstmal muß das Array rekursiv durchlaufen werden um maxrow(depth+1) und maxcol(count of values) herauszufinden. Dann müsste man per "backtrace", von den Blättern ausgehend, die jeweiligen colspan und rowspan der Vorgänger berechnen. Evtl. geht das sogar in einem Durchlauf.
Klingt vernünftig. Bin mir allerdigns noch nicht so ganz im klaren, wie ich das am besten machen, dass es auch halbwegs performant ist..

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Wenn mich gleich mal die Langeweile plagt, dann bastel ich dir sowas...
wäre nett ;) Kleine Testarrays hab ich leider keine mehr, aber kannst ja ganz einfach mit paar Schleifen erstellen, ist ja egal was drinne steht ^^

Gruß
Domi
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #6  
Alt 25.05.2009, 14:12:06
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Mehrdimensionales Array als HTML Tabelle

Zitat:
dass es auch halbwegs performant ist..
Da sehe ich schwarz!
Im grunde muß 3 mal rekursiv durchs Array gewackelt werden.
1. berechen der Anzahlen, s.o.
2. fixieren der Struktur (colspan-rowspan)
3. ausgabe in HTML

Der einzige "Beschleuniger" dürfte die konsequente Übergabe per Referenz sein. ansonsten sehe ich da kein Land.
Mit Zitat antworten
  #7  
Alt 25.05.2009, 15:13:37
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Mehrdimensionales Array als HTML Tabelle

na gut, dann stellen wir die Performance mal hinten an :)
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #8  
Alt 26.05.2009, 12:06:16
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Mehrdimensionales Array als HTML Tabelle

Hier mal eine Zwischenlösung:

PHP-Code:
<style type="text/css">
<!--
table
{
  width: 100%;
  border-collapse: collapse;
}

td
{
  border: thin solid;
  border-color: #000000;
}

//-->
</style>

<?php

 
$array 
= array();
$array['key1'] = array(1,2,3,4,5);
$array['key2'] = array('key3'=>array(1,2,3,4,5,6),'key4'=>array(1,2,3,4,5));
$array['key5'] = array('key8'=>array('key6'=>array(1,2,3,4,5,6),'key7'=>array(1,2,3,4,5)));


function 
displayArray(Array &$array)
{
  
$result  '<table>'//cellpadding="8"
  
foreach($array as $key => &$sub)
  {
    
$result .= '<tr>';
    if(
is_array($sub))
    {
      
$result .= '<td>';
      
$result .= htmlentities($key);
      
$result .= '</td>';
      
$result .= '<td>';
      
$result .= displayArray($sub);
      
$result .= '</td>';
    }else
    {
      
$result .= '<td>';
      
$result .= htmlentities($sub);
      
$result .= '</td>';
    }
    
$result .= '</tr>';
  }

  
$result .= '</table>';
  return 
$result;
}

echo 
displayArray($array);
Es entschpricht nicht ganz deinen Vorgaben, aber das schöne ist, man sieht genau was zusammengehört.
evtl. reicht dir das ja schon...
Mit Zitat antworten
  #9  
Alt 26.05.2009, 12:17:15
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
AW: Mehrdimensionales Array als HTML Tabelle

unter PHP4 (zumindest in dieser conf mit IIS) funktioniert der Referenzaufruf im foreach nicht. Bin ich froh, wenn dieses Projekt am Ende des Monats abgeschlossen ist und ich wieder auf modernen Systemen entwickeln darf :)
__________________

the best way to be ready for the future is to invent it
Mit Zitat antworten
  #10  
Alt 26.05.2009, 12:22:09
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Mehrdimensionales Array als HTML Tabelle

Meine Frage war eigentlich, ob dir das so schon reicht?
PHP-Code:
function displayArray($array

  
$result  '<table>'//cellpadding="8" 
  
foreach($array as $key => $sub
  { 
    
$result .= '<tr>'
    if(
is_array($sub)) 
    { 
      
$result .= '<td>'
      
$result .= htmlentities($key); 
      
$result .= '</td>'
      
$result .= '<td>'
      
$result .= displayArray($sub); 
      
$result .= '</td>'
    }else 
    { 
      
$result .= '<td>'
      
$result .= htmlentities($sub); 
      
$result .= '</td>'
    } 
    
$result .= '</tr>'
  } 

  
$result .= '</table>'
  return 
$result

Und die PHP4 Info macht mich ja jetzt etwas dull. Dann kannst ja sowieso mit meinem (noch geheimen) TabellenKlassenGedöns gar nix anfangen.
*anpassungs Arbeit erstmal einstellend*

Geändert von DokuLeseHemmung (26.05.2009 um 12:25:24 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array formatiert ausgeben Faang PHP Grundlagen 3 15.08.2008 02:47:43
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 19:19:53
Mehrdimensionales Array sortieren MrLongbaugh PHP Grundlagen 10 06.03.2008 13:02:47
Mehrdimensionales Array rightround PHP für Fortgeschrittene und Experten 2 23.01.2007 15:49:25
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 14:36:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55:36 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt