Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/03/2013, 10:39
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Cambiar claves/valores a array multidimensional

Excelente cachusan, muchas gracias!. Luego de aplicar tu código sólo fue cuestión de hacer un implode para emparejar ambos arrays y luego aplicar un str_replace(). La cosa quedó así:

Código PHP:
Ver original
  1. $patron = "/\(Art. .*\)/";
  2. preg_match_all($patron , $html , $coinc);
  3.  
  4. $array = array();
  5.  
  6. foreach ($coinc[0] as $k => $v) {
  7.     $replace = preg_replace('/\(Art. (.*)\)/' , '$1' , $v);
  8.     $array[$k] = preg_split('/, | y /' , $replace);
  9.     if( count($array[$k]) == 1 ) {
  10.         $array[$k] = '<a href="http://sitio.com/art-'.$replace.'">'.$replace.'</a>';  
  11.     } else {
  12.         foreach($array[$k] as $key => $value)
  13.                 $array[$k][$key] = '<a href="http://sitio.com/art-'. $value .'">'. $value .'</a>';
  14.  
  15.             if( count($array[$k]) == 2 )
  16.                 $array[$k] = implode (' y ' , $array[$k]);
  17.  
  18.             else
  19.                 $array[$k] = implode (', ' , $array[$k]);
  20.     }
  21.             $array[$k] = '(Art. '. $array[$k] .')';
  22. }
  23.  
  24. $html = str_replace($coinc[0] , $array , $html);
Gracias de nuevo!