使用此阵列
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'),
)
我怎么能像这样输出
仅使用一个foreach()并且有两个
答案 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
希望这有帮助!