Hi我有一个数组值,如0,0,0、0、1、1、2、2、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必须在主列表项中,并且任何其他值都必须嵌套在子列表下。
如果我答对了你的问题,每个"更改"都应该产生一个子列表?
$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>
使用函数
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
以获取不同的值计数并在循环中构造输出。