Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wszystkie kombinacje elementów tablicy bez powtórzeń z dowolną liczbą elementów, pomoże ktoś kod uprościć?
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


doszedłem do 4 elementów, jeżeli mam dopisywać ich więcej to będzie chore, podejrzewam że można to jakoś uprościć, kod działa w 100% prawidłowo

  1. $model='1 2 3 4';
  2.  
  3. $model_tabl = str_replace('-', ' ', $model);
  4. $model_tabl = explode(" ", $model_tabl);
  5.  
  6. $ile=count($model_tabl);
  7.  
  8. for( $x = 0; $x < $ile; $x++ ) {
  9. for( $x1 = 0; $x1 < $ile; $x1++ ) {
  10. if(empty($model_tabl[2])) {
  11. if ($model_tabl[$x]!=$model_tabl[$x1]){
  12. echo $model_tabl[$x].' '.$model_tabl[$x1].'<br>';
  13. };
  14. }
  15. else {
  16. for( $x2 = 0; $x2 < $ile; $x2++ ) {
  17. if(empty($model_tabl[3])) {
  18. if ($model_tabl[$x]!=$model_tabl[$x1] && $model_tabl[$x1]!=$model_tabl[$x2] && $model_tabl[$x]!=$model_tabl[$x2]){
  19. echo $model_tabl[$x].' '.$model_tabl[$x1].' '.$model_tabl[$x2].'<br>';
  20. };
  21. } else {
  22. for( $x3 = 0; $x3 < $ile; $x3++ ) {
  23. if(empty($model_tabl[4])) {
  24. if ($model_tabl[$x]!=$model_tabl[$x1] && $model_tabl[$x1]!=$model_tabl[$x2] && $model_tabl[$x]!=$model_tabl[$x2] && $model_tabl[$x]!=$model_tabl[$x3] && $model_tabl[$x1]!=$model_tabl[$x3] && $model_tabl[$x2]!=$model_tabl[$x3]){
  25. echo $model_tabl[$x].' '.$model_tabl[$x1].' '.$model_tabl[$x2].' '.$model_tabl[$x3].'<br>';
  26. };
  27. } else {
  28. }
  29. }
  30. }
  31. }
  32. }
  33.  
  34. }
  35. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


http://docstore.mik.ua/orelly/webprog/pcook/ch04_26.htm funkcja pc_permute
Go to the top of the page
+Quote Post
adi456
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


rany redeemer dzięki wielkie, dużo czasu mi zaoszczędziłeś, dzięki jeszcze raz
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Radzę przeczytać całą "recepturę" (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
adi456
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


nie moge sobie poradzić z tym skryptem

chce z niego wyciągnąć dane na zewnątrz w taki oto sposób

  1. $model='1 2 3 4';
  2. function pc_permute($items, $perms = array( )) {
  3. if (empty($items)) {
  4. $okis[]=join(' ', $perms);
  5.  
  6. } else {
  7. for ($i = count($items) - 1; $i >= 0; --$i) {
  8. $newitems = $items;
  9. $newperms = $perms;
  10. list($foo) = array_splice($newitems, $i, 1);
  11. array_unshift($newperms, $foo);
  12. pc_permute($newitems, $newperms);
  13. }
  14. }
  15. }
  16. pc_permute(split(' ', $model));
  17. print_r($okis);


i zmienna $okis jest pusta, i nie wiem zabradzo jak wyciągnąć z tego dane, chyba najprosciej jest to w sesje zapisywac ale czy to nie jest troche głupie?

każda funkcja nie wypuszcza z siebie zmiennych?


p.s. he przepraszam o global zapomniałem:P

Ten post edytował adi456 26.04.2012, 10:04:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 16:54