PHP encuentra todas las combinaciones únicas (algo) de una matriz
He estado buscando en la matriz de PHP permutación / combinación de preguntas todo el día ... y todavía no puedo resolverlo: /
Si tengo una matriz como:
20 //key being 0
20 //key being 1
22 //key being 2
24 //key being 3
Necesito combinaciones como:
20, 20, 22 //keys being 0 1 2
20, 20, 24 //keys being 0 1 3
20, 22, 24 //keys being 0 2 3
20, 22, 24 //keys being 1 2 3
El código que tengo actualmente me da:
20, 22, 24
porque no quiere repetir 20 ... pero eso es lo que necesito!
Aquí está el código que tengo. es directamente deRecursión de php para obtener todas las posibilidades de cuerdas.
function getCombinations($base,$n){
$baselen = count($base);
if($baselen == 0){
return;
}
if($n == 1){
$return = array();
foreach($base as $b){
$return[] = array($b);
}
return $return;
}else{
//get one level lower combinations
$oneLevelLower = getCombinations($base,$n-1);
//for every one level lower combinations add one element to them that the last element of a combination is preceeded by the element which follows it in base array if there is none, does not add
$newCombs = array();
foreach($oneLevelLower as $oll){
$lastEl = $oll[$n-2];
$found = false;
foreach($base as $key => $b){
if($b == $lastEl){
$found = true;
continue;
//last element found
}
if($found == true){
//add to combinations with last element
if($key < $baselen){
$tmp = $oll;
$newCombination = array_slice($tmp,0);
$newCombination[]=$b;
$newCombs[] = array_slice($newCombination,0);
}
}
}
}
}
return $newCombs;
}
He estado jugando con el($b == $lastEl)
línea, sin suerte
===============
¡Las preguntas que ya he examinado y no son las mismas O que crearon un error de falta de memoria !:
¿Cómo puedo obtener todas las permutaciones en PHP sin duplicados secuenciales?Permutaciones - todos los conjuntos posibles de númerosCombinaciones, Disposiciones y Permutaciones en PHPCombinaciones de matrices de PHPObtener todas las permutaciones de una matriz de PHP?PHP: ¿Cómo obtener todas las combinaciones posibles de matriz 1D?Seleccione solo valores de matriz únicos de esta matrizObtener todas las permutaciones de una matriz de PHP?PHP: ¿Cómo obtener todas las combinaciones posibles de matriz 1D?Seleccione solo valores de matriz únicos de esta matriz¿Cómo puedo obtener todas las permutaciones en PHP sin duplicados secuenciales?Algoritmo para devolver todas las combinaciones de k elementos de nEncuentra la combinación de la suma de los elementos en la matriz cuya suma es igual a un número dadoCombinaciones, Disposiciones y Permutaciones en PHPCombinaciones de matrices de PHPRecursión de php para obtener todas las posibilidades de cuerdas.¿Cómo devolver permutaciones de una matriz en PHP?Permutaciones - todos los conjuntos posibles de númerosProblema de suma de subconjuntos en PHP con MySQLEncuentre combinaciones únicas de valores de matrices que filtran cualquier par duplicadoEncontrar todas las permutaciones únicas de una cadena sin generar duplicadosGenerar todas las permutaciones únicas.¿Suma de subconjuntos para exactamente k enteros?He probado algunos de estos algoritmos con una matriz de 12 elementos y terminé quedándome sin memoria. Sin embargo, el algoritmo que estoy usando actualmente no me da un error de falta de memoria ... PERO ... ¡Necesito esos duplicados!