Comment puis-je passer de ce tableau multidimensionnel: à ceci: p> ci-dessus est en html ... p> p>
4 Réponses :
suppose que vos données sont en $ TRAY.
echo '<ul>'; foreach ($array as $city => $hotels) { echo "<li>$city</li>\n<ul>\n"; foreach ($hotels as $hotel) { echo " <li>$hotel</li>\n"; } echo "</ul>\n\n"; } echo '</ul>';
Ce n'est pas tout à fait ce qui a été demandé, mais c'est probablement ce qui était destiné. Certains CSS complèteront le formatage.
En fait, le code ci-dessus fournit uniquement un "enfant" pour chaque parent, par exemple, par exemple, la ville de Camden n'a reçu qu'un seul hôtel répertorié au lieu de 2.
Son recommandé d'utiliser Echo sur imprimé dans PHP
Voici un moyen beaucoup plus maintenu de le faire que d'echo HTML ...
<?php foreach( $array as $city => $hotels ): ?> <h2><?= $city ?></h2> <ul> <?php foreach( $hotels as $hotel ): ?> <li><?= $hotel ?></li> <?php endforeach; ?> </ul> <?php endforeach; ?>
C'est la bonne réponse. Parfait. Merci de m'avoir introduit de la fin. C'est exactement ce que j'ai cherché.
@ ARSH Vous pouvez noter que Endforeach code> est utilisé ici pour le sens de la lisibilité, de sorte que l'ordinaire
foreach code> peut être utilisé. Voir php.net/manual/fr/control-tructures.alternative-syntax .php
//code by acmol function array2ul($array) { $out = "<ul>"; foreach($array as $key => $elem){ if(!is_array($elem)){ $out .= "<li><span>$key:[$elem]</span></li>"; } else $out .= "<li><span>$key</span>".array2ul($elem)."</li>"; } $out .= "</ul>"; return $out; } I think you are looking for this.
Code rockstar ici ici. Merci de m'avoir sauvé l'heure de la construction!
J'aime ça c'est récursif
FONCTION ANMOL refusée
/** * Converts a multi-level array to UL list. */ function array2ul($array) { $output = '<ul>'; foreach ($array as $key => $value) { $function = is_array($value) ? __FUNCTION__ : 'htmlspecialchars'; $output .= '<li><b>' . $key . ':</b> <i>' . $function($value) . '</i></li>'; } return $output . '</ul>'; }
tant de choses. Ceci est mon dernier gasp