Tema: Duda Arrays
Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/09/2011, 10:26
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Duda Arrays

Me encontré esta función que da el mismo resultado, pero más "elegante":

Código PHP:
Ver original
  1. <?php
  2. function array_cartesian() {
  3.     $_ = func_get_args();
  4.     if (count($_) == 0)
  5.         return array(array());
  6.     $a = array_shift($_);
  7.     $c = call_user_func_array(__FUNCTION__, $_);
  8.     $r = array();
  9.     foreach ($a as $v)
  10.         foreach ($c as $p)
  11.             $r[] = array_merge(array($v), $p);
  12.     return $r;
  13. }
  14.  
  15. function abecedario() {
  16.     return array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  17.     'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
  18.     'x', 'y', 'z');
  19. }
  20.  
  21. $cross = array_cartesian(abecedario(),abecedario(),abecedario());
  22.  
  23. echo '<pre>';
  24. print_r($cross);
  25. echo '</pre>';

Fuente
http://www.php.net/manual/en/ref.array.php#54979
__________________
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

Última edición por andresdzphp; 23/09/2011 a las 11:09 Razón: ortografía...