Skocz do zawartości

Narzędzie które wyświetli mi pełną listę kombinacji


haiku

Rekomendowane odpowiedzi

<?php
$s = '{1|2|3|4|5} {a|b|c|d}';

$e = array();
preg_match_all('=\{([^\{\}]+)\}=', preg_replace('=\R=u', '', $s), $s);
for ($i=0, $c=count($s[1]); $i<$c; $i++)
$e[] = explode('|', $s[1][$i]);

$permutations = array();
$count = count($e);
for ($i = 0; $i < $count; $i++) {
$temp = array_map("permute",array($permutations),array($e[$i]));
$permutations = $temp[0];
}
print implode ("<br />", $permutations);

// https://stackoverflow.com/questions/10734514/permutation-of-array-php
function permute($base,$add) {
$result = array();
if (count($base) > 0) {
foreach ($base AS $val1) {
 if (count($add) > 0) {
	foreach ($add AS $val2) {
	 $result[] = $val1.' '.$val2;
	}
 }
 else {
	$result = $base;
 }
}
}
else {
$result = $add;
}
return $result;
}
?>

Zwraca:

1 a

1 b

1 c

1 d

2 a

2 b

2 c

2 d

3 a

3 b

3 c

3 d

4 a

4 b

4 c

4 d

5 a

5 b

5 c

5 d

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności