2015-02-04 2 views
0

Моя проблема заключается в том, что мой код всегда начинается с первой позиции. Поэтому я не могу дать каждой строке это поле ввода с соответствующим идентификатором.foreach в foreach php два массива

Итак, как я могу избежать получения того же поля ввода, когда речь идет о новой строке?

+0

' '< ? php echo «»; ' – Rizier123

+0

исправил его, но не был основной проблемой;) – bdart

+1

как вы получаете связанный идентификатор? Итак, как $ item в $ items связан с $ line в $ phase? –

ответ

1

Внутренняя петля foreach всегда проходит по одной и той же переменной $items. Разве это не должно быть чем-то, что каким-то образом вело бы через внешний foreach?

+0

, так что, когда я буду подсчитывать элементы массива $ и будет заполнять его внутри foreach с помощью добавления i ++, вы имеете в виду? – bdart

+0

Это зависит от того, как подготовлены ваши $ items. Не зная, как вы создаете $ items, невозможно утверждать. Не могли бы вы отправить var_dump ($ phase) и var_dump ($ items)? – agoldev

+0

$ items - многомерный массив, подобный этому: [1] => array ('title' => 'First Title', 'content' => 'blabla') [2] ... и так далее – bdart

0

Я сделал это с несколькими случаями. Кажется немного грязным, но легче, чем преследовать мою цель. Так это выглядит следующим образом: Я надеюсь, что кто-нибудь может использовать его: »; `-> Важно предварительно сортировать объект во-первых, на ряду, чем на седловине

<table class="sal-list" style="width: 100%;"> 
<tr> 
<?php 
    $width = 100/(count($pos)+1); 
    echo "<th style='width:".$width."%;'></th>"; 
    foreach ($pos as $item) { 
     echo "<th style='width:".$width."%;'><div class='headliner-th'>".$item['title']."</div></th>"; 
    } 
?> 
</tr> 
<?php 
$g = 0; 
foreach ($phase as $line) { 
    echo "<tr>"; 
     echo "<td>"; 
      echo "<div class='headliner-th'><b>".$line['title']."</b></div>"; 
     echo "</td>";?> 
      <?php foreach($items as $i=>$item): ?> 
       <?php if (($g <= count($items)) and ($g == $i) and ($line['id'] == $item['phas_id'])) : ?> 
        <td><?= $form->field($item,"[$i]content")->textInput(['maxlength' => 200])->label(false); ?></td> 
       <?php $g++; endif;?> 
      <?php endforeach; ?> 

     <?php 
    echo "</tr>"; 
} 
?>