如何在ul li中显示数组输出

时间:2012-02-22 00:44:46

标签: php

我当前的数组

[attributes] => Array
    (
        [0] => Color, Black, 1
        [1] => Size, S, 0
    )

foreach上如何将此数组显示为类似

<ul>
  <li class="alignleft">Color : Black</li>
  <li class="alignright">$ 1.00</li>
  <li class="alignleft">Size : S</li>
  <li class="alignright">$ 0.00</li>
</ul>

我做了什么..

<ul>            
<?php
$c = true;
foreach ($_SESSION['checkout']['attributes'] as $key => $value) {
    echo '<li'.(($c=!$c)?' class="alignright"':' class="alignleft"').">$value</div>";
}
?>
</ul>

3 个答案:

答案 0 :(得分:4)

只要你的所有数组条目都是这样,这应该有效:

<ul>            
<?php
foreach ($_SESSION['checkout']['attributes'] as $key => $value) {
    $arr = explode(",", $value);
    echo '<li class="alignleft">' . $arr[0] . ' : ' . $arr[1] . '</li>';
    echo '<li class="alignright">$' . number_format($arr[2], 2) . '</li>';
}
?>
</ul>

答案 1 :(得分:3)

如果我必须输出一个简短的html内容,我个人更喜欢使用sprintf。当然,为了便于阅读。

<ul>
    <?php
    foreach ($_SESSION['checkout']['attributes'] as $key => $row) {
        list($label, $type, $price) = explode(", ", $row);
        echo sprintf('
        <li class="alignleft">%s : %s</li>
        <li class="alignright">$ %.2f </li>
        ', $label, $type, $price);
    }
    ?>
</ul>

答案 2 :(得分:2)

解决方案是:

<ul>            
<?php
foreach ($_SESSION['checkout']['attributes'] as $key => $value) {
    $val = explode(', ', $value);
    echo '<li class="alignleft">'. $val[0]. ' : '. $val[1]. '</li>';
    echo '<li class="alignright">$ '. number_format($val[2], 2). '</li>';
}
?>
</ul>

然而,更好的方法是,如果您可以对阵列进行更多控制并使用以下内容:

Array(

    [0] => Array(
        ['label'] => 'Color',
        ['value'] => 'Black',
        ['price'] => 1
    ),
    [1] => Array(
        ['label'] => 'Size',
        ['value'] => 'S',
        ['price'] => 0
    )
)

然后你不需要爆炸$ value,你可以使用$value['label']而不是$val[0]$value['value']代替$val[1]等...

相关问题