Estoy estudiando para obtener la certificación PHP de Zend.La forma más rápida de iterar array en PHP
No estoy seguro de la respuesta a esta pregunta.
Pregunta: ¿Cuál es la mejor manera de iterar y modificar cada elemento de una matriz con PHP 5?
a) no se puede modificar una matriz durante la iteración
b)
for($i = 0; $i < count($array); $i++) { /* ... */ }
c)
foreach($array as $key => &$val) { /* ... */ }
d)
foreach($array as $key => $val) { /* ... */ }
e)
while(list($key, $val) = each($array)) { /* ... */ }
Mi instinto es (B) ya que no hay necesidad de crear una variable temporal, entonces me doy cuenta de que no funcionará para las matrices asociativas. La búsqueda adicional alrededor de la red encontró esto: El almacenamiento del recuento de matriz invariante en una variable separada mejora el rendimiento.
$cnt = count($array);
for ($i = 0; $i < $cnt; $i++) { }
La parte "usar PHP' 5' "también puede ser una pista. b), d), e) son posibles en php4 pero c) no lo es.De acuerdo, esa es una evidencia débil, pero la pregunta del examen a menudo funciona de esa manera ;-) Ya que necesita otra tabla de consulta para acceder al elemento para b, d, e parece obvio que c) es "la mejor" manera (dadas las opciones). El manual también indica que esto no funciona con 'foreach (array (1,2,3) as & $ v)', el traversable debe ser una variable. – VolkerK