estoy teniendo problemas para recorrer dos veces en la misma matriz:foreach anidados en el problema de PHP
<? $indice=0 ?>
<?php foreach ($comisiones as $comision1):?>
<tr>
<td><?php echo ++$indice ?></td>
<td><?php echo tag('select',array('name'=>'comision_'.$indice),true)?>
<?php foreach ($comisiones as $comision2):?>
<option value="<?php echo $comision2->getId()?>">
<?php echo $comision2->getNombre()." - ".$comision2->getDescripcion()?>
</option>
<?php endforeach?>
</select>
</td>
</tr>
<?php endforeach?>
Las impresiones de código anterior:
code result http://img440.imageshack.us/img440/7732/res.png
Y estoy esperando ver algo así (las etiquetas de los combos en las imágenes no son las mismas, pero creo que la idea es clara):
expected results http://img229.imageshack.us/img229/7969/esperado.png
Gracias de antemano
Gracias Richard, reemplacé el primer foreach con un normal y funcionó. No puedo creer que PHP tenga un ERROR ENORME en una estructura tan simple ... – Neuquino
No es un error, está documentado como encontrado en php.net/foreach: Nota: A menos que se haga referencia a la matriz, foreach opera en una copia de la matriz especificada y no la matriz en sí. foreach tiene algunos efectos secundarios en el puntero del array. No confíe en el puntero de matriz durante o después del foreach sin restablecerlo. –
si está documentado, es un ERROR. Ese comportamiento no es intuitivo, nadie esperaría ese resultado de esa pieza de código. PHP debe usar diferentes punteros para cada estructura foreach. – Neuquino