-2
votes

Comment faire écho des valeurs de matrice multidimensionnelles par des rangées de table au lieu de colonnes dans PHP

J'essaie d'afficher un tableau multidimensionnel de ma base de données dans une table HTML avec PHP, rangée par ligne au lieu de colonne par colonne.
J'ai le tableau suivant;

Array ( 
  [0] => Array ( 
       [0] => Paracetamol 
       [1] => Caffeine
       [2] => Pase 
   ) 
   [1] => Array ( 
       [0] => 12
       [1] => 10
       [2] => 1
   ) 
   [2] => Array (
       [0] => Packets
       [1] => Cartons
       [2] => Containers
   )
)


2 commentaires

Veuillez partager votre code actuel afin que nous puissions vous aider à déboguer.


Bonjour @nick, j'ai utilisé la réponse fournie ci-dessous par Anik-Anwar et cela a fonctionné.


4 Réponses :


0
votes

Voici quelque chose qui vous donnera une idée de faire votre tâche.

p>

 <?php
$meds = Array ( 
  [0] => Array ( 
       [0] => Paracetamol 
       [1] => Caffeine
       [2] => Pase 
   ) 
   [1] => Array ( 
       [0] => 12
       [1] => 10
       [2] => 1
   ) 
   [2] => Array (
       [0] => Packets
       [1] => Cartons
       [2] => Containers
   )
);
                    echo "<table>";
                    foreach($meds as $itemz) {
                      echo "<tr>";
                        foreach ($itemz as $item) {
                            echo "<td>".$item."</td>";
                        }
                      echo "</tr>";
                      echo "<br >";
                    }       
                    echo "</table>";
                    ?>


1 commentaires

Bonjour, merci beaucoup pour la réponse. Je l'ai essayé mais malheureusement, cela affichait toujours la même chose.



0
votes

En fait, il y a plusieurs façons, je vais en donner l'un d'eux xxx


1 commentaires

Bonjour, merci beaucoup pour la réponse. Je l'ai essayé mais malheureusement, cela affichait toujours la même chose.



2
votes

Essayez de transposer le tableau

function transpose($array) {
    return array_map(null, ...$array);
}


1 commentaires

Merci d'avoir répondu. Je ne pouvais pas le faire au début mais après quelques modifications, cela a fonctionné. Gracias !!



1
votes
<?php 
    $array = Array (
                Array ( 
                   'Paracetamol',
                   'Caffeine',
                   'Pase'
                ),
                Array ( 
                   12,
                   10,
                   1
                ),
                Array ( 
                   'Packets',
                   'Cartons',
                   'Containers'
                )
            );

   function combine($array) {
        array_unshift($array, null);
        return call_user_func_array('array_map', $array);
    }

    $array = combine($array);
?>
<table border="1">
        <tr>
        <th>Product_name</th>
        <th>Product_quantity</th>
        <th>Product_size</th>
    </tr>
    <?php foreach($array as $row): ?>
    <tr>
      <td><?=$row[0]?></td>
      <td><?=$row[2]?></td>
      <td><?=$row[1]?></td>
    </tr>
    <?php endforeach ?>

</table>

1 commentaires

Merci beaucoup. Cela a fonctionné comme un charme quand j'ai utilisé la fonction combine ... je suis très reconnaissant pour cela ..