9
votes

Tableau PHP à la liste

Comment puis-je passer de ce tableau multidimensionnel: xxx

à ceci: xxx

ci-dessus est en html ...


1 commentaires

tant de choses. Ceci est mon dernier gasp


4 Réponses :


0
votes

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>';


3 commentaires

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



14
votes

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; ?>


2 commentaires

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 est utilisé ici pour le sens de la lisibilité, de sorte que l'ordinaire foreach peut être utilisé. Voir php.net/manual/fr/control-tructures.alternative-syntax .php



23
votes
//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. 

2 commentaires

Code rockstar ici ici. Merci de m'avoir sauvé l'heure de la construction!


J'aime ça c'est récursif



9
votes

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>';
}


0 commentaires