2016-06-22 3 views
1

Ich habe Array wie:Produktherstellungs- Vergleichstabelle aus dem Array

Array 
(
[0] => Array 
    (
     [product_id] => 19 
     [attributes] => Array 
      (
       [0] => Array 
        (
         [label] => Hard Disk 
         [name] => harddisk 
         [value] => 500 GB 
        ) 

       [1] => Array 
        (
         [label] => RAM 
         [name] => ram 
         [value] => 16 GB 
        ) 

       [2] => Array 
        (
         [label] => Graphics 
         [name] => graphics 
         [value] => 2 GB 
        ) 

       [3] => Array 
        (
         [label] => Graphics Card 
         [name] => graphicscard 
         [value] => 2 GB 
        ) 

      ) 

    ) 

[1] => Array 
    (
     [product_id] => 20 
     [attributes] => Array 
      (
       [0] => Array 
        (
         [label] => Hard Disk 
         [name] => harddisk 
         [value] => 1 TB 
        ) 

       [1] => Array 
        (
         [label] => RAM 
         [name] => ram 
         [value] => 8 GB 
        ) 

       [2] => Array 
        (
         [label] => Graphics 
         [name] => graphics 
         [value] => 1 GB 
        ) 

       [3] => Array 
        (
         [label] => Graphics Card 
         [name] => graphicscard 
         [value] => 1 GB 
        ) 

      ) 

    ) 

) 

mag ich tabellarische Form dieses Array extrahieren als:

Product ID  | 19   | 20 
    Hard Disk  | 500 GB  | 1 TB 
    RAM    | 16 GB  | 8 GB 
    Graphics  | 2 GB   | 1 GB 
    Graphics Card | 2 GB   | 1 GB 

Es eine andere Produkt-ID kommen kann auch, wie es ist dynamisch. Ich bin in der Lage, erste Spalte zu bekommen, aber wie man andere Spalte bekommt. Mein Code ist:

<table class="table"> 

       <?php 
       $count = count($all); 
       if (!empty($all)) { 
        foreach ($all as $value) { 
         ?> 
    <?php foreach ($value['attributes'] as $val) { ?> 
          <tr> 
           <td><?php echo $val['label']; ?></td> 
          </tr> 
         <?php 
         } exit(); 
        } 
       } 
       ?> 
     </table> 

Antwort

0

Ich bin immer komplett durch die Mischung von HTML und PHP verblüfft. Ich bevorzuge einen klareren Blick.

würde ich Ihr Problem in zwei Schritten lösen:

1: Schalten Sie das Array in ein Array, das leicht als Tabelle wiedergegeben werden kann.

2: Rendert die Tabelle von diesem Array.

Diese Routine kann mit fehlenden Attributen umgehen.

Dieser Code ist nicht perfekt, aber es gibt Ihnen einen Ausgangspunkt. Die Herausforderung besteht darin, die Komplexität noch weiter zu reduzieren. Ich denke, das ist möglich.

+0

Hallo, ich habe Fehler gefunden. Ich kann nicht auf die Produkt-ID zugreifen, um Zeilen aus der Datenbank basierend auf der Produkt-ID abzurufen. – user254153

+0

Der Code wurde mit Ihrem Beispiel-Array getestet und es hat funktioniert. Ich habe Produkt-ID '$ id' genannt, und es scheint mir zugänglich zu sein. Wie dem auch sei, der Code hier soll nur neue Ideen geben, Sie können einen völlig anderen Weg nutzen, um dieses Problem zu lösen, wenn Sie Bedürfnisse haben, die Sie in Ihrer Frage nicht angegeben haben. –

+0

Ich versuche mithilfe der Produkt-ID Produktdetails aus der Datenbank abzurufen. Ja, ich kann auf die Produkt-ID zugreifen, aber da es in der Schleife ist, dauert die Datenbankabfrage mehr Male so viele Schleifen wie es läuft. Können Sie mir bitte helfen, Datenbank nur zweimal zu beantragen, da in Frage nur zwei Produkt-ID ist. Danke für die Hilfe. – user254153

Verwandte Themen