Php 如何在列表和子列表中显示数组值
嗨,我有一个数组值,如 0,0,0,0,0,1,1,2,2,2,3,3 我们如何才能以最有效的格式打印Php 如何在列表和子列表中显示数组值,php,loops,logic,Php,Loops,Logic,嗨,我有一个数组值,如 0,0,0,0,0,1,1,2,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>
<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
- 0
- 0
- 0
-
- 一,
- 一,
-
- 二,
- 二,
- 二,
-
- 三,
- 三,
条件是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>";
$priorement=null;
回声“”;//外部ul;
foreach($value作为$value){
如果($value!=0){
如果($priorement!=$value){
如果($priorement!=null){
回声“
”;
}
回声“”;
}
}
回显“- 美元价值”
”;
$priorement=$value;
}
//最终uls
回声“
”;
更新至问题
产生:
<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>
- 0
- 0
- 0
- 一,
- 一,
- 一,
- 2
- 2
- 2
- 2
- <3
- 4
使用该功能
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
array array_count_values ( array $array )
使用排序选项获取唯一值
然后使用函数
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
array array_count_values ( array $array )
获取不同的值计数并在循环中构造输出。您的源代码不进行验证,在语义上也没有多大意义。为什么在父级
中有这么多单独的
(没有正确关闭)?此外,我认为你的问题需要更清楚一点,否则将有可能获得接近票数的选票。你试过任何代码吗?什么不起作用?请展示你的努力,我们不是来为你工作的。看起来这应该只是一个循环,在这个循环中,您将当前值与以前的值进行比较,并在它发生变化时启动一个新的
。0
@Barmer:好吧,只需对输入进行排序,那么0将是最上面的。(列表看起来还是按顺序排列的?!)不,0
元素的嵌套方式与其他元素不同。@Barmar:这一点很好。然而,给出的示例不是有效的html,因此很难预测期望的结果。原始示例无效,现在他在嵌套的
周围添加了,看起来很有效。这与问题完全无关。@Barmar,我认为这是正确的方法。我是说数组\u计数\u值
我想这是在回答一个完全不同的问题。这个问题中没有关于计数的内容,它只是将一个数组转换成格式化的HTML。@Barmar这是一个双助手函数,他可以使用该函数按顺序获得数组的不同值,然后获得该数组中每个值的出现次数。有了这些信息,他可以很容易地重新创建列表。