[ Foro de PHP ]
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.)