Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/01/2013, 18:57
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: [PHP] Simplificar funcion

En la función str_replace se pueden usar 2 arrays, uno para la búsqueda y otro para el reemplazo.

En el primer array (búsqueda) podrías usar range y te ahorrarías escribir todo el abecedario.

En segundo array puedes armarlo manualmente $array_reemplazo = array("111*", '"112*" etc... o usar una función que "permute", saque las combinaciones posibles entre 1 y 3 de 3 dígitos.

algo así sin la función que "permute":

Código PHP:
Ver original
  1. <?php
  2.  
  3. function replace($text) {
  4.    
  5.     $arrc = range('a', 'z');
  6.     $arrc[] = ' ';
  7.     $arrc[] = '*';
  8.    
  9.     $arrr = array('111*', '112*', '113*', '121*', '122*', '123*', '131*', '132*', '133*', '211*',
  10.     '212*', '213*', '221*', '222*', '223*', '231*', '232*', '233*', '311*', '312*', '313*', '321*',
  11.     '322*', '323*', '331*', '332*', '333*');
  12.     $arrr[] = ' ';
  13.    
  14.     return str_replace($arrc, $arrr, $text);
  15. }
  16.  
  17. echo replace('andres');

Si no entendí por favor me lo haces saber.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP