嗨我有一个数组值 0,0,0,0,0,1,1,2,2,3,3
我们如何以最有效的格式打印出来?
<ul>
<li>0</li>
<li>0</li>
<li>0</li>
<li>0</li>
<li>0</li>
<li>
<ul>
<li>1</li>
<li>1</li>
</ul>
</li>
<li>
<ul>
<li>2</li>
<li>2</li>
<li>2</li>
</ul>
</li>
<li>
<ul>
<li>3</li>
<li>3</li>
</ul>
</li>
</ul>
条件是0必须在主列表项中,并且任何其他值必须嵌套在子列表下。
答案 0 :(得分:1)
如果我的问题是正确的,那么每个“更改”应该会产生一个子列表吗?
$priorElement = null;
echo "<ul>"; // outer ul;
foreach ($values AS $value){
if ($value != 0){
if ($priorElement != $value){
if ($priorElement != null){
echo "</ul></li>";
}
echo "<li><ul>";
}
}
echo "<li>$value</li>";
$priorElement = $value;
}
//final uls
echo "</ul></li></ul>";
已更新至问题。
产地:
<ul>
<li>0</li>
<li>0</li>
<li>0</li>
<li><ul>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
</li>
<li><ul>
<li>2</li><li>2</li><li>2</li><li>2</li><li>2</li></ul></li><li><ul><li>3</li></ul></li><li><ul><li>4</li></ul></li></ul>
答案 1 :(得分:0)
使用功能
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
http://us3.php.net/function.array-unique
使用排序选项获取唯一值。
然后使用功能
array array_count_values ( array $array )
http://www.php.net/manual/en/function.array-count-values.php
获取不同的值count并在循环中构造输出。