Domanda

Array nel mio codice è abbastanza grande, quindi lo sto incollando in Pastebin. http://pastebin.com/6tvit2xj

Non capisco perché sto ottenendo loop infinito

Logica di questo script è:

$it = new ArrayIterator($options);
while($it->valid()) {
    print $it->key();
    print $it->current();
}
.

È stato utile?

Soluzione

Perché non ti muovi mai in te Iteratore ( con Arrayiterator :: Avanti () ).

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

Altri suggerimenti

Dovresti usare $it->next(); Qualche parte di cui sarai la stessa chiave eternamente

Stai superando l'elemento corrente, è necessario eseguire $it->next(); a punto / andare all'elemento successivo

Il problema principale non utilizza $it->next(); nel tuo ma che ancora molti non ti danno l'output desiderato perché se si esegue print $it->current(); restituire solo Array poiché non è possibile emettere informazioni di array con print.

Dovresti usare RecursiveArrayIterator e RecursiveIteratorIterator poiché si tratta di array multidimensionale

Per ottenere tutti i valori prova:

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

Vedi la demo full: http://codepad.viper-7.com/uqf18q .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top