Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
Consigue todas las combinaciones posibles sin duplicados

¿Cómo puedo obtener todas las combinaciones posibles de números dados? por ejemplo tengo

$arr = [ 1, 2, 3, 4]

Quiero obtener las combinaciones sin duplicados dentro de las combinaciones.

 [1] => [1] [2] => [2] [3] => [3] [4] => [4] [5] => [1, 2] [6] => [1, 3] [7] => [1, 4] [8] => [2, 3] [9] => [2, 4] [10] => [3, 4] [11] => [1, 2, 3] [12] => [1, 2, 4] [13] => [1, 3, 4] [14] => [2, 3, 4] [15] => [1, 2, 3, 4]

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Espero que la función a continuación funcione según el resultado esperado:

 function get_array_combination($arr) { $results = array(array( )); foreach ($arr as $values) foreach ($results as $combination) array_push($results, array_merge($combination, array($values))); // Get new values and merge to your previous combination. And push it to your results array return $results; } $set = array('1', '2', '3', '4'); $final_array = get_array_combination($set); echo "<pre>"; print_r(array_values(array_filter($final_array))); // Removed blank entry from array and re indexing array keys.
about 4 years ago · Santiago Trujillo Denunciar

0

No me gustó que la solución dada esté modificando una variable iterada dentro de su bucle y también quería una solución que pueda entender fácilmente para trasladar a otros idiomas. Así que aquí:

 <?php function permutation(array $arr) { $out=[[]]; foreach($arr as $key2=> $item2){ $copy=$out; foreach($copy as $k=> $v){ array_push($copy[$k],$item2 ); } array_push($out,...$copy); } return $out; } print_r(permutation(array(1,2,3,4)));

Este segundo es intencionalmente raro para que sea mejor entender lo que está pasando.

 <?php function permutation(array $arr) { $out=[]; while(count($arr)){ $out_temp=[[]]; foreach($arr as $key2=> $item2){ $copy=$out_temp; foreach($copy as $k=> $v){ array_push($copy[$k],$item2 ); } if($key2==0){ unset($out_temp[0]); } array_push($out_temp,...$copy); } array_push($out,...$out_temp); array_shift($arr); } return $out; } print_r(permutation(array(1,2,3,4,5)));
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda