Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%)
|
[php:1:585bb24194]
<?php $koszulka = array ( 'kolor' => array ( 0 => 'Zielony', 1 => 'Czerwony', 2 => 'Żółty' ), 'rozmiar' => array ( 0 => 'S', 2 => 'M', 6 => 'L' ), 'typ' => array ( 3 => 'Męska', 9 => 'Damska' ) ); ?> [/php:1:585bb24194] w jaki sposób wybrać wszystkie kombinacje, tak aby uzyskać: Zielony, S, Męska Zielony, S, Damska Zielony, M, Męska Zielony, M, Damska Zielony, L, Męska Zielony, L, Damska Czerwony, S, Męska Czerwony, S, Damska Czerwony, M, Męska ... itd itd oczywiście chodzi mi o funkcję która rekursywnie będzie tworzyła kombinację bez względu na ilość cech i wartości cech. Zauważcie, że klucze tablic z wartościami są dowolne, nie są po kolei. dziękuję z góry za wszelką pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%)
|
[php:1:d9e725b6b7]<?php
foreach( $koszulka['kolor'] as $kolor ) { foreach( $koszulka['rozmiar'] as $rozmiar ) { foreach( $koszulka['typ'] as $typ ) { echo $kolor.", ".$rozmiar.", ".$typ."n"; } } } ?>[/php:1:d9e725b6b7] Nie testowałem... |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%)
|
kszychu:
Cytat oczywiście chodzi mi o funkcję która rekursywnie będzie tworzyła kombinację bez względu na ilość cech i wartości cech.
|
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%)
|
ups.... sorry, nie doczytałem.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%)
|
no hope?
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%)
|
Algorytm:
[php:1:6505ac8e15]<?php $koszulka = array ( 'kolor' => array ( 0 => 'Zielony', 1 => 'Czerwony', 2 => 'Żółty' ), 'rozmiar' => array ( 0 => 'S', 2 => 'M', 6 => 'L' ), 'typ' => array ( 3 => 'Męska', 9 => 'Damska' ) ); $keys = array_keys($koszulka); $values = array(); foreach ($koszulka as $val) { $values[] = array_values($val); } $numTypes = count($keys); $numTotal = 1; $switch = array(0 => 1); $result = array(); for ($i=0; $i<$numTypes; $i++) { $tmp = count($values[$i]); $switch[$i+1] = $switch[$i] * $tmp; $numTotal *= $tmp; } for ($i=0; $i<$numTotal; $i++) { for ($j=0; $j<$numTypes; $j++) { $result[$j] = $values[$j][floor($i / $switch[$j]) % count($values[$j])]; } echo implode(', ', $result) . "<br>n"; } ?>[/php:1:6505ac8e15] Wynik: Kod Zielony, S, Męska
Czerwony, S, Męska Żółty, S, Męska Zielony, M, Męska Czerwony, M, Męska Żółty, M, Męska Zielony, L, Męska Czerwony, L, Męska Żółty, L, Męska Zielony, S, Damska Czerwony, S, Damska Żółty, S, Damska Zielony, M, Damska Czerwony, M, Damska Żółty, M, Damska Zielony, L, Damska Czerwony, L, Damska Żółty, L, Damska :wink: |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 20.12.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%)
|
śliczne dzięki
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 19:27 |