Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将数组内容输出为嵌套列表_Php_Html_Arrays - Fatal编程技术网

在PHP中将数组内容输出为嵌套列表

在PHP中将数组内容输出为嵌套列表,php,html,arrays,Php,Html,Arrays,我有数组array([0]=>array(1,2,3,4,5)[1]=>array(6,7,8,9,10))我想这样显示它: <ul> <li> <a href=""/>FIRST ELEMENT OF THE array ==> 1</a> <a href=""/>2ND ELEMENT OF THE TAB ==> 2</a> <a href=""/>3THIRD

我有数组
array([0]=>array(1,2,3,4,5)[1]=>array(6,7,8,9,10))
我想这样显示它:

<ul>
  <li>
     <a href=""/>FIRST ELEMENT OF THE array ==> 1</a>
     <a href=""/>2ND ELEMENT OF THE TAB ==> 2</a>
     <a href=""/>3THIRD ELEMENT==> 3</a>
     <a href=""/>FORTH ELEMENT OF THE TAB ==> 4</a>
     <a href=""/>FIFTH ELEMENT==> 5</a>
 </li>
 <li>
     <a href=""/>6th ELEMENT==> 6</a>
     <a href=""/>7th ELEMENT OF THE TAB ==> 7</a>
     <a href=""/>8th ELEMENT==> 8</a>
     <a href=""/>9th ELEMENT OF THE TAB ==> 9</a>
     <a href=""/>10th ELEMENT OF THE TAB ==> 9</a>
 </li>


</ul>
如何在PHP中实现这一点?我正在考虑使用
array\u slice


<?php
for($i = 0 ; $i < count($tab) ; $i += 2) {
    echo "<a href>" . $tab[$i] . "</a>";
    echo "<a href>" . $tab[$i+1] . "</a>";
}
?>
就像那样。

试试看

echo "<ul>";
$i=0;
$theCount = count($tab);
while($i<$theCount){
    echo "<li>";
    echo "  <a href=""/>FIRST ELEMENT OF THE TAB ==> {$tab[$i]}</a>";
    $i++;
    echo "  <a href=""/>FIRST ELEMENT OF THE TAB ==> {$tab[$i]}</a>";
    echo "</li>";
    $i++;
}
echo "</ul>";
echo“
    ”; $i=0; $theCount=计数($tab);
    而($i根据实际阵列结构进行了更新

    您的解决方案是一个简单的嵌套foreach

    $tab = array(array(1,2,3,4,5), array(6,7,8,9,10));
    echo '<ul>';
    foreach ($tab as $chunks) {
        echo '<li>';
        foreach($chunks as $chunk) {
            echo '<a href="">' . $chunk . '</a>';
        }
        echo '</li>';
    }
    echo '</ul>';
    
    $tab=数组(数组(1,2,3,4,5),数组(6,7,8,9,10));
    回声“
      ”; foreach($tab作为$chunks){ 回音“
    • ”; foreach($chunk作为$chunk){ 回声'; } 回音“
    • ”; } 回声“
    ”;
    试试这个:

    $sections = array_chunk(array(1,2,3,4,5,6,7,8,9,10), 2);
    
    echo '<ul>';
    
    foreach($sections as $value)
    {
     echo '<li>';
     echo '<a href=""/>'.$value[0].' ELEMENT OF THE TAB ==>  '.$value[0].'</a>';
     echo '<a href=""/>'.$value[1].' ELEMENT OF THE TAB ==>  '.$value[1].'</a>';
     echo '</li>';
    }
    
    echo '</ul>';
    
    $sections=array_chunk(数组(1,2,3,4,5,6,7,8,9,10),2);
    回声“
      ”; foreach($value) { 回音“
    • ”; 回声'; 回声'; 回音“
    • ”; } 回声“
    ”;
    下面是另一种方法(演示):


    只要数组中始终有偶数项,这将起作用。奇数将导致索引溢出。这会在每次迭代时重新计算数组。最好缓存该值。您可以粘贴数组的php代码吗?这是不正确的
    。应该是
    您的要求完全改变了…您需要如果你不想告诉我们所有的事实,就不要浪费我们的时间想出一个问题的解决方案。第一次花时间正确地解释事情。注意下面放置的@nikc确实适用:这只对偶数项有效。简单-如果丑陋-修复将转到计数()-1,然后检查是否需要再打印1。这会在每次迭代中重新计算数组。你应该分离计数。作为一种学术加速,是的,但我不认为这个问题会要求这样的优化。不过,我会修复“错误”:)取点,取点,但有人可能会争辩说,这是为了清晰地理解……的流程。。。。owkee,nevermind;)+1号代码现在更安全了。但是,源数组中的元素数量不均匀可能会有问题。我认为您应该翻转此条件,并首先放置包含close/open
    li
    元素的块。它看起来更容易阅读。
    array\u chunk
    无疑是一种方法,但源数组中元素数量不均会引发错误。@Stephen,你是对的,只是稍微检查一下($value[0])、($value[1])是否可以解决此问题,但我同意这不是最好的方法,我自己也有几种方法,现在考虑一下,但在我回答时,我想到了这一点……在OP更改了要求后,删除了数组块。
    <?php
    $tab = array(1,2,3,4,5,6,7,8,9,10);
    
    //how many <a> elements per <li>
    $aElements = 2;    
    
    $totalElems = count($tab);    
    
    //open the list
    echo "<ul><li>";
    
    for($i=0;$i<$totalElems;$i++){
    
        if($i != 0 && ($i%$aElements) == 0){ //check if I'm in the nTh element.
            echo "</li><li>"; //if so, close curr <li> and open another <li> element
        }
    
        //print <a> elem inside the <li>
        echo "<a href =''>".$tab[$i]."</a>";
    }
    
    //close the list
    echo "</li></ul>";
    
    ?>