如何在列表和子列表中显示数组值


how to show array values in list and sublist

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

以获取不同的值计数并在循环中构造输出。