Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/07/2015, 04:24
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 6 meses
Puntos: 84
Ejecución prolongada y fallida en loop for

Hola a todos.

Tengo un problema en un método y no encuentro el motivo del error con mi código.

Estoy intentando crear a partir de un string un array.

Este es el ejemplo de string de origen
Código:
page/0/id/7
Lo divido y convierto en un array asociativo para luego convertirlo en un array indexado con la siguiente clase

Código PHP:
Ver original
  1. <?php
  2. namespace core;
  3.  
  4. /*
  5.  
  6.  *  crea una array indexado a partir de un string */
  7. class StringToPath{
  8.    
  9.     /*
  10.  
  11.      * @var string/to/path #string
  12.      * divide un string en un array asociativo     */
  13.     public function explode($param){
  14.         return explode("/", $param);
  15.     }
  16.    
  17.     /*
  18.  
  19.      * @array #int=>#string
  20.      * crea un array indexado a partir de un array asociativo     */
  21.     public function toIndexed($param){
  22.         $a = count($param);
  23.         for($i = 0, $j = 1; $i <= $a, $j <= $a; $i+2, $j+2){
  24.             $key = $param[$i];
  25.             $value = $param[$j]; //linea 25
  26.             $result[$key] = $value;
  27.         }
  28.         return $result;
  29.     }
  30.    
  31.     /*
  32.    
  33.      * @var string/to/path #string
  34.      * devuelve el array indexado     */
  35.     public function convert($param){
  36.         $associative = $this->explode($param);
  37.         return $indexed = $this->toIndexed($associative);
  38.     }
  39. }

Explicación del funcionamiento de la clase
Cita:
La clase recibe un string del tipo /key/value/key/value/key/value/....
en el método convert(), el método convert primero llama al método explode, del cual recibe un array asociativo y ese array asociativo lo envia al método toIndexed() que finalmente devuelve un array indexado con los keys como keys del array y los values como values del array indexado.
El problema lo tengo cuando se ejecuta el método toIndexed(), el error que me muestra PHP es el siguiente

Cita:
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\blog\core\StringToPath.php on line 25
La linea 25 está indicada en el código.

¿Alguien puede ayudarme, sugerirme, etc.?
__________________
Ayúdame a hacerlo por mi mismo.