Php ul li foreach组相似

时间:2013-07-11 10:29:07

标签: php

使用此阵列

array(
    array('status'=>1, 'name'=>'James Wah'),
    array('status'=>1, 'name'=>'James Weh'),
    array('status'=>2, 'name'=>'James Wih'),
    array('status'=>2, 'name'=>'James Woh'),
    array('status'=>2, 'name'=>'James Wuh'),
)

我怎么能像这样输出

  • James Wah
  • James Weh
  • James Wih
  • James Woh
  • James Wuh

仅使用一个foreach()并且有两个

3 个答案:

答案 0 :(得分:5)

试试这个,现在它显示状态差异组:

$status = $data[0]['status'];
echo "<ul>";
foreach($data as $value) {
    if($status != $value['status'])
        echo "</ul><br /><ul>";
    echo "<li>".$value['name']."</li>";
    $status = $value['status'];
}
echo "</ul>";

答案 1 :(得分:1)

$ul = '<ul>';
foreach($arr as $v) {
 $ul.='<li>'.$v['name'].'</li>';
}
$ul.='</ul>';

这将是一个简单的解决方案,我不认为只有一个foreach是可能的,因为implode在这里不起作用,因为必须在前后附加胶水

$sortbyStatus = array();
foreach($arr as $v) {
 $sortbyStatus[$v['status']][] = $v['name'];
}

$uls='';
foreach($sortByStatus as $vals) {
 $uls.'<ul>';
 foreach($vals as $v) {
   $uls.='<li>'.$v.'</li>';
}
 $uls.='</ul>;
}

}

答案 2 :(得分:1)

<强>代码:

echo "<ul>";
foreach($statuses as $status) {
echo "<li>". $status['name'] . "</li>";
}
echo "</ul>";

<强>更新

您可以使用$count变量来创建分隔。例如:

$count = 0;
echo "<ul>";
foreach($statuses as $status) {
    if($count==2){
    echo "<li>". $status['name'] . "</li><br/>"; 
    }
    else{
    echo "<li>". $status['name'] . "</li>";
    }
    $count++;
}
echo "</ul>";

更新了输出:

• James Wuh
• James Weh
• James Wih

• James Woh
• James Wuh

键盘:http://codepad.org/NyLIAUNI

更新:http://codepad.org/xhmlCwXW

希望这有帮助!