Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wypisanie opcji z wariancji w php.
Forum PHP.pl > Forum > PHP
TToMeKK
Witam,

Podam prostszy przykład, lecz chce użyć do tego skryptu innych danych (w większej ilości), aby nie siedzieć nad tym rok lub więcej wink.gif.

Mam elementy: a, b, c; chcę mieć zbiory 2 elementowe (z powtórzeniami) { x, y }.
Wynikiem tego jest: {a,a}{a,b}{a,c}{b,a}{b,b}{b,c}{c,a}{c,b}{c,c}.

Chciałbym abym dał skryptowi liste elementów i jakiej wielkości mają być zbiory, a skrypt wypisze mi wszystkie opcje, lub zapisze mi to w bazy danych (ale z bazą danych już sobie sam poradzę.

Niestety nie mam pomysłu co do tego skryptu i a tym zwracam się do was o pomoc.
CuteOne
  1. function mixuj($v, $elements) {
  2.  
  3. $a = array();
  4. foreach($elements as $vv) {
  5.  
  6. $a[] = $v.'-'.$vv;
  7. }
  8.  
  9. return $a;
  10. }
  11.  
  12.  
  13. $elements = array('a', 'b', 'c');
  14. $array = array();
  15.  
  16. foreach($elements as $v) {
  17.  
  18. $array[] = mixuj($v, $elements);
  19. }
  20.  
  21. echo '<pre>'; print_r($array);


TToMeKK
A jak chcę zrobić zbiór 3 elementowy { x, y, z} to co zmienić?
CuteOne
zmienić punkt widzenia z "chcę" na "zrobię to sam" i chwilę pomyśleć

ps. mała podpowiedź: funkcję aaa() można wywołać w ciele funkcji aaa() - czyli mixuj wewnątrz mixuj
TToMeKK
Jakoś się udało wykombinować smile.gif. Dzięki wielkie smile.gif

Dla tych co mają lub będą mieli podobny problem zmodyfikowałem to tak:

  1. <?
  2. function mixuj($v, $elements) {
  3.  
  4. $a = array();
  5. foreach($elements as $vv) {
  6.  
  7. foreach($elements as $vv2){
  8.  
  9. $a[] = $v.'-'.$vv.'-'.$vv2;
  10. }
  11. }
  12.  
  13. return $a;
  14. }
  15.  
  16.  
  17. $elements = array('a', 'b', 'c');
  18. $array = array();
  19.  
  20. foreach($elements as $v) {
  21.  
  22. $array[] = mixuj($v, $elements);
  23. }
  24.  
  25. echo '<pre>'; print_r($array);
  26. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.