Avatar Image
Machacateclados
Machacateclados

Buenas tardes a todos!!!
Verán, tengo que ampliar un array con valores de otro array pero me falla el código.

Spoiler:

$a=0;
while($a<count($asignaturas))
{
    //si salgo del while es pq he recorrido $asignaturas entero
    //preguntamos si son distintos para hacer las modificicaciones.
    if($asignaturas[$a]['codigo_asignatura']!=$clases[$a]['codigo_asignatura'])
    {
       for($i=count($clases)-1;$i>=$a;$i--)//ruedo a la derecha 1 celda los registros
       {
         $b=$i++;
         $clases[$b]=$clases[$i];
       }
       //llenamos la posición $a con los datos de la asignatura correspondiente
       $clases[$a]['num_clases']="01";
       $clases[$a]['codigo_asignatura']=$asignaturas[$a]['codigo_asignatura'];
     }
     $a++;
}

Mi idea es que si no está la asignatura en el array $clases, ruedo todas las celdas de $clases, 1 celda a la derecha, hasta la posición donde indique $a, y luego en dicha posición añado los valores. El problema que me da es "maximum time of 30sec ejecution....".
Desde ya, muchas gracias.

Avatar Image
@man / @woman
@man / @woman

En las instrucciones:

while($a<count($asignaturas)) y for($i=count($clases)-1;$i>=$a;$i--)

el código se ejecuta más rápico haces:

$cant=count($asignaturas);

while($a<$cant){ .... } .... for($i=$cant-1;$i>=$a;$i--)

debido que en cada ciclo no tiene que estar evaluando el count()

Avatar Image
@man / @woman
@man / @woman

Anoche no me fije lo del array, ya estaba pasado de código.

En el ciclo, estás mezclando índices numéricos con nombres, aparte de definir un bucle indefinido (el bucle interno), prueba de esta forma (lo hago con índices numéricos):


$cant=count($clases);

for($i=$cant;$i>0;$i--) $clases[$a][$i]=$clases[$a][($i-1)]; // corres a la derecha

$clases[$a][0]=$asignaturas[$a][$0]; // cargas nuevo valor


Ahora, en lugar de las 3 líneas anteriores, me gusta más esta forma:

array_unshift($clases[$a],$asignaturas[$a][$0]);


Avatar Image
Machacateclados
Machacateclados

Muchas gracias GestionXls por tu tiempo; lo hice de otra forma,pero me kedo con el código que pusiste pq siempre viene bien; y es más, lo probaré,porque son menos líneas, y si me devuelve lo mismo... bienvenido,jaja ^_^
Muchas gracias, en serio.

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares