Pregunta

Matriz en mi código es bastante grande, así que me pega en pastebin. http://pastebin.com/6tviT2Xj

No entiendo por qué estoy recibiendo bucle sin fin

La lógica de esta secuencia de comandos es:

$it = new ArrayIterator($options);
while($it->valid()) {
    print $it->key();
    print $it->current();
}
¿Fue útil?

Solución

porque nunca se mueve en su iterador ( con arrayiterator :: Siguiente () ).

while ($it->valid()) {
    ...
    $it->next();
}

Otros consejos

usted debe utilizar $it->next(); de lo contrario va a bajar más la misma clave eternamente

usted está iterando sobre el elemento actual, usted necesita hacer $it->next(); a punto de/ir al siguiente elemento

El principal problema no es el uso de $it->next(); en su pero que todavía muchos no dan el resultado deseado, porque Si ejecuta print $it->current(); lo único que haría sería volver Array ya que usted no puede matriz de salida de información con print.

Usted debe estar utilizando RecursiveArrayIterator y RecursiveIteratorIterator ya que se trata de una matriz multidimensional

Para obtener todos los valores de probar :

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($options));
foreach ( $it as $key => $val ) {
    echo $key . ":" . $val . "\n";
}

Ver demostración completa : http://codepad.viper-7.com/UqF18q

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top