34554 Mieszanie tablic, losowanie elementów, PHP, ....
min zł10 PLN
Paid on delivery
Losowanie elementów TABLIC wielowymiarowych i ich mieszanie / łączenie (w PHP)
1. tablica K zawierająca kilka tablic S i kilka tablic L
- ilość tablic K, S, L jest zmienna
TAB-K1 {
TAB-K1S1 {S1-1,S1-2,S1-3,S1-4}
TAB-K1S2 {S2-1}
TAB-K1S3 {S3-1,S3-2}
TAB-K1S4 {S4-1,S4-2,S4-3,S4-4,S4-5,S4-6}
TAB-K1L1 {L1-1,L1-2,L1-3,L1-4,L1-5,L1-6}
}
TAB-K2 {
TAB-K2S1 {S1-1}
TAB-K2L1 {L1-1,L2-2}
}
TAB-K3 {
TAB-K3S1 {S1-1}
TAB-K3S2 {S2-1,S2-2}
TAB-K3L1 {L1-1}
TAB-K3L2 {L2-1,L2-2}
TAB-K3L3 {L3-1,L3-2,L3-3,L3-4,L3-5,L3-6}
}
Mieszanie polega na przypisaniu po 1 elemencie z tablic TAB-KnLn[] do tablic TAB-KnSn[]
WARUNKI:
- nie mieszamy tablic we własnym obrębie TAB-K[]
- nie można przypisać 2 razy tego samego elementu TAB-KnLn[] do TAB-KnS[],
czyli nie można przypisać TAB-K2L1[0] dwa razy np. do tablicy TAB-K1S4 mimo że mamy 6 elementów w tablicy,
tu oczywiście przydał by się włączany wyjątek i parametr z ilością powtórzeń aby można przypisać max po 1 sztuce dla elementu.
Wyniki muszą być zapisywane najlepiej w bazie MySQL, lub ostatecznie w pliku jako serializowane dane.
struktura bazy danych:
TAB-K (idK, nazwa_elementu-K)
TAB-S (idS, idK, nazwa_elementu-S, maxL)
- maxL = 2
- maxL - jest to zmienna maksymalna ilość elementów TAB-KnLn jaka może zostać przypisana do 1 elementu z tablicy TAB-KnSn
- przykład TAB-K1S1[0] dla max 2 elementów (TAB-K2L1[0],TAB-K3L2[1])
TAB-SW (idSW, idS, nazwa_elementu-SW)
TAB-L (idL, idK, nazwa_elementu-L, maxW, co_ile_losowan)
- maxW - ile maksymalnie razy wykorzystać dany element tablicy
- co_ile_losowan - ci ile losowań pobrać dany element tablicy
Trzeba stworzyć jakąś lub jakieć tablice na wylosowane / przypisane elementu ...
Przykładowa rozpiska bazy z powyższego przykładu.
TAB-K
(1,TAB-K1),(2,TAB-K2),(3,TAB-K3);
TAB-S
(1,1,TAB-K1S1,2),(2,1,TAB-K1S2,2),(3,1,TAB-K1S3,2),(4,1,TAB-K1S4,2),
(5,2,TAB-K2S1,2),
(6,3,TAB-K3S1,2),(7,3,TAB-K3S1,2);
TAB-SW
(1,1,S1-1),(2,1,S1-2),(3,1,S1-3),(4,1,S1-4),
(5,1,S2-1),
(6,1,S3-1),(7,1,S3-2),
(8,1,S4-1),(9,1,S4-2),(10,1,S4-3),(11,1,S4-4),(12,1,S4-5),(13,1,S4-6),
(14,2,S1-1),
(15,3,S1-1),
(16,3,S2-1),(17,3,S2-2);
TAB-L
(1,1,L1-1,10,1),(2,1,L1-2,10,1),(3,1,L1-3,10,1),(4,1,L1-4,10,1),(5,1,L1-5,10,1),(6,1,L1-6,10,1),
(7,2,L1-1,10,1),(8,2,L1-2,10,1),
(9,3,L1-1,10,1),
(10,3,L1-1,10,1),(11,3,L1-2,10,1),
(12,3,L1-1,10,1),(13,3,L1-2,10,1),(14,3,L1-3,10,1),(15,3,L1-4,10,1),(16,3,L1-5,10,1),(17,3,L1-6,10,1);
Losowanie odbywa się po odświeżeniu strony
Jeśli jest coś niezrozumiałe wyjaśnię dokładniej.
Project ID: #5609498