PHP:循环trought数组并使用数组元素创建li列表-数组中的数组

PHP:循环trought数组并使用数组元素创建li列表-数组中的数组,php,Php,我有一个包含对象的数组: Array ( [0] => 479,1,sometext [1] => 474,2,again text [2] => 472,3,and text ) 数组中的对象可以是无限的,但每个对象由3部分组成,由逗号分隔 结果应该(在我的例子中)第二次更正 <li> <span class="somecrap">array[0][0]</span> <input type="text" class="secon

我有一个包含对象的数组:

Array ( [0] => 479,1,sometext [1] => 474,2,again text [2] => 472,3,and text ) 
数组中的对象可以是无限的,但每个对象由3部分组成,由逗号分隔

结果应该(在我的例子中)第二次更正

<li>
<span class="somecrap">array[0][0]</span>
<input type="text" class="secondcrap" value="array[0][1]"/>
<textarea class="3crap">array[0][2]</textarea>
</li>
<li>
<span class="somecrap">array[1][0]</span>
<input type="text" class="secondcrap" value="array[1][1]"/>
<textarea class="3crap">array[1][2]</textarea>
</li>
<li>
<span class="somecrap">array[2][0]</span>
<input type="text" class="secondcrap" value="array[2][1]"/>
<textarea class="3crap">array[2][2]</textarea>
</li>
  • 数组[0][0] 数组[0][2]
  • 数组[1][0] 数组[1][2]
  • 数组[2][0] 数组[2][2]
  • 等等。。。。取决于阵列对象的计数

    您将如何完成此任务?

    尝试以下方法:

    foreach($array as $entry) {
        echo "<li>\n";
        $elements = explode(',', $entry, 3);
        echo "<span class='somecrap'>{$elements[0]}</span>\n";
        echo "<input type='text' class='secondcrap' value='{$elements[1]}'/>\n";
        echo "<textarea class='3crap'>{$elements[2]}</textarea>\n";
        echo "</li>\n";
    }
    
    foreach($array as$entry){
    回声“
  • \n”; $elements=分解(“,”,$entry,3); 回显“{$elements[0]}\n”; 回音“\n”; 回显“{$elements[2]}\n”; 回声“
  • \n”; }
    已更新以反映您编辑的需求。未经测试。

    foreach($arr作为$row){
    
    <?php 
    $array = //Your input
    $fieldNames = array('crap', 'someCrap', '3rdCrap');
    
    foreach ($array as $row) {
      $fields = explode(',', $row);
      echo "<li>";
      for($i = 0; $i < 3; ++$i) {
        echo "<span class='{$fieldNames[$i]}'>";
        if(isset($fields[$i]))
          echo $fields[$i];
        echo "</span>";
      }
      echo "</li>";
    }
    ?>
    
    回显“
  • ”,连接(“”,分解(‘,’,$row,3)),“
  • ”; }
    您的阵列不是二维的,它应该是这样的:

     Array (
       [0] => Array( [0] => 479, [1] => 1, [2] => sometext),
       [1] => Array([0] >= 474, [1] => 2, [2] => again text),
       [2] => Array([0] => 472, [1] => 3, [2] => and text)
      )
    
    在那之后,这只是一个嵌套foreach的问题:

    foreach($myArray as $level_one){
     echo '<li>';
     foreach($level_one as $item){
       echo '<span>' . $item . '</span>';
     }
     echo '</li>';
    } 
    
    foreach($myArray作为$level\u one){
    回音“
  • ”; foreach($level_-one作为$item){ 回显“.$item.”; } 回音“
  • ”; }
    +1您可能需要添加
    explode
    的limit参数,以将结果限制为最多3个部分。您的速度非常快:)无论如何,我更正了我的结果示例。诀窍是,每个跨度都有自己的Id。你天生就有php数组:)你觉得这个新的结果示例怎么样?你的速度很快:)不管怎样,我更正了我的结果示例。诀窍是,每个span都有自己的Id.jam:每个
    的Id/类名应该相同吗?还是希望它取决于每个数组项的内容?结果示例有一个更正版本。还有一点困难。我编辑了我的答案以适应这一点-不太难。结果会再次更正,因为Sam Dufel对阵列非常聪明,为我提供了太好的解决方案:D
    foreach($myArray as $level_one){
     echo '<li>';
     foreach($level_one as $item){
       echo '<span>' . $item . '</span>';
     }
     echo '</li>';
    }