[ Foro de PHP ]

Funcion recursiva

29-Jul-2022 04:08
Invitado (RFuentes)
0 Respuestas

En el siguiente script PHP, alguien me puede explicar en que momento el array que inicialmente era ['B', 'C'] se permutaron los valores a ['C', 'B'] ? Y tambien lo que hace que los 2 comandos YIELD trabajen juntos y no por separados.

<?php
function permutations(array $elements) {
   $len = count($elements);
   if ($len <= 1) {
      yield $elements;
   } else {
       foreach(permutations(array_slice($elements, 1)) as $permutation) {
           foreach(range(0, $len - 1) as $i) {
               yield array_merge(array_slice($permutation, 0, $i),
                                  [$elements[0]],array_slice($permutation, $i));
           }
       }
   }
}
$perms = permutations(['A', 'B','C']);
foreach ($perms as $perm) {
   echo implode('|', $perm) . '<br>';
}
?>




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)