2012-09-25 23 views
5

Duplicar posibles:
Permutations - all possible sets of numbers¿Construir un árbol de probabilidad usando php?

tengo una matriz que tiene una lista de opciones, Cada opción es único y no puede ser repetido.

Quiero construir un árbol de probabilidad usando estas opciones:

$options = array('1','2','3','4','A','E','I','O'); 

Así que una línea válida podría ser 1-2-E-3-O-I-4-A

¿Cómo puedo hacer esto? (¡o al menos apúntame en la dirección correcta!)

+0

¿Realmente quieres encontrar todas las permutaciones de la matriz '$ options'? – fsenart

+3

Consulte esta [pregunta] (http://stackoverflow.com/questions/5506888/permutations-all-possible-sets-of-numbers). Puede ser útil. –

Respuesta

0
<?php 

function pc_permute($items, $perms = array()) { 
    if (empty($items)) { 
     print join('-', $perms) . "<br />"; 
    } else { 
     for ($i = count($items) - 1; $i >= 0; --$i) { 
      $newitems = $items; 
      $newperms = $perms; 
      list($foo) = array_splice($newitems, $i, 1); 
      array_unshift($newperms, $foo); 
      pc_permute($newitems, $newperms); 
     } 
    } 
} 

$options = array('1','2','3','4','A','E','I','O'); 
$mass = pc_permute($options); 

?> 
+0

Quiero mostrar todas las líneas posibles – Hailwood

+0

@Hailwood algo como esto? – Peon

+0

No, él quiere TODAS las líneas posibles, no solo una aleatoria ... –

0

La recursividad es probablemente la forma más fácil de implementar esto, pero no se adaptará bien a los grandes conjuntos de datos.

Básicamente escribe una función que toma una serie de opciones, corta una de las llamadas.

Cuestiones relacionadas