Skrypt ma trzy parametry :
- $remove_duplicates =true; // =false jeżeli duplikaty w linii są potrzebne przykład linia wyjściowa : 10 10 32 17 28,
=true jezeli duplikatów jest brak, przykład 10 32 17 28
- $duplicates_out = true; // =true nie wyświetlaj okrojonych zestawów zestaw jw 10 32 17 28 nie bedzie wyswietlony, false bedzie wyświetlony 10 32 17 28 :
- $sorted = true; // = false jeżeli liczby maja byc nie sortowane przykład : 10 32 17 28 gdy =true bedą posortowane w liniach 10 17 28 32
Na YouTube jest znów film instrukcja do tego skryptu :
https://www.youtube.com/watch?v=BfWgFySy6Gg
- Code: [Select all] [Expand/Collapse] [Download] (all2all.php)
- <?php
- /* skrypt mnoży zestawy z pola "zakłady" i pola "wyniki"
- / każdy z każdym. Dwa pierwsze wiersze to parametry
- / jezeli nie chcesz aby w zestawach liczby były unikalne
- / ustaw parametr $remove_duplicates =true (false wyłacza opcję)
- / jeżeli chcesz wynik posortować w wierszach ustaw parametr
- / $sorted = true;
- / wynik wyświetla się w polu wybranym w opcjach SkryptyPHP->Opcje->
- / wyjscie do lewego lub prawego panela. Rezultat zamazuje wówczas
- / zestaw wejsciowy. Aby wrócić do zestawu mozesz wcisnąć klawisze
- / ctrl+c aż pojawi sie zestaw wejsciowy ponownie.
- */
- $remove_duplicates =true; // =false jeeli duplikaty w linii są potrzebne
- $duplicates_out = true; // =true nie wyświetlaj okrojonych zestawów
- $sorted = true; // = false jeżeli liczby maja byc nie sortowane
- // wyrażenie w wolnym tłumaczeniu oznacza, rozdziel tekst jak trafisz lub nie na znak
- // powrotu karetki(\r?) i na znak końca linii (\n). Dla Windowsa końcem linii jest para \r\n
- // dla unixa tylko (\n) dlatego znak warunku ? za znakiem \r - 0 lub 1 raz.
- foreach($linesa as $la) // linie rozdzielone na tablice znakow
- foreach($linesb as $lb)
- // linie rozdziela się wyrażeniem regularnym grupujacym znaki z negacją
- // [^0-9]+ co znaczy NIE znaki z zakresu 0-9 a wiec zestawy moga być
- // rozdzielone dowolnym znakiem np 1,2,3,4 lub 1:2:3:4 ..., znak plus(+)
- // za grupa mówi ze znaków moze być 1 lub wiecej razy.
- // ty zaczyna sie pętla iteracji po tablicach, jest zagnieżdzona wiec
- // bedzie spełniony warunek kazda z kazdym
- foreach($arra as $a) { // dla wszystkich tablic z pola "zakłady"
- foreach($arrb as $b) { // dla wszystkich tablic z pola "wyniki"
- $out[]=$x; // gotowa tablica do deklarowanej tablicy wyjscowej
- // jako nastepny element [], indeksem tablicy będzie kolejny numer elementu
- // od zera począwszy.
- }
- }
- // wyświetlamy wyniki
- foreach($out as $lines) { // dla kazdej tablicy (linii) w tablicy wyjsciowej
- foreach($lines as $num) { // dla kazdej liczby
- // "%2d " co znaczy wyreowadź liczbe jako dwa znaki (przed liczby
- // jednoznakowe wstawiana jest spacja i za liczbą wstaw równiez pustą spację
- // jezeli chcesz aby znakiem rozdzielajacym był znak tabulacji (tab) to wzor
- // formatowania powinien wyglądać : "%2d\t".
- }
- echo "\n"; // zakończ kazdą linie znakiem końca linii. można wstawić typowy znak
- // końca linii dla windowsa czyli "\r\n".
- }
- ?>
- GeSHi © Codebox Plus