M maced Utente Attivo 30 Nov 2011 48 0 6 10 Gen 2014 #1 Faccio un esempio prendiamo la parola "prova" Devo proporre tutte le combinazioni fra maiuscole e minuscole della parola Prova PRova pRoVa prova ProvA Ecc ecc spero di esser stato chiaro Datemi uno spunto
Faccio un esempio prendiamo la parola "prova" Devo proporre tutte le combinazioni fra maiuscole e minuscole della parola Prova PRova pRoVa prova ProvA Ecc ecc spero di esser stato chiaro Datemi uno spunto
flameseeker Utente Attivo 27 Nov 2013 699 0 0 10 Gen 2014 #2 Sono riuscito a tirarti fuori una funzioncina in 5 minuti, mi sembra funzioni a dovere ma se così non fosse almeno hai uno spunto di partenza: PHP: function allCasesOf($word) { $wordLen = strlen($word); $word = strtolower($word); $wordList = array($word, strtoupper($word)); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtoupper($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtolower($word); } } $word = strtoupper($word); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtolower($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtoupper($word); } } return $wordList; } Utilizzo: PHP: print_r(allCasesOf("eva")); /* Output Array ( [0] => eva [1] => EVA [2] => Eva [3] => eVa [4] => evA [5] => EVa [6] => eVA [7] => EvA ) */
Sono riuscito a tirarti fuori una funzioncina in 5 minuti, mi sembra funzioni a dovere ma se così non fosse almeno hai uno spunto di partenza: PHP: function allCasesOf($word) { $wordLen = strlen($word); $word = strtolower($word); $wordList = array($word, strtoupper($word)); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtoupper($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtolower($word); } } $word = strtoupper($word); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtolower($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtoupper($word); } } return $wordList; } Utilizzo: PHP: print_r(allCasesOf("eva")); /* Output Array ( [0] => eva [1] => EVA [2] => Eva [3] => eVa [4] => evA [5] => EVa [6] => eVA [7] => EvA ) */
N Nefyt Utente Attivo 17 Apr 2012 1.102 0 0 10 Gen 2014 #3 flameseeker ha scritto: Sono riuscito a tirarti fuori una funzioncina in 5 minuti, mi sembra funzioni a dovere ma se così non fosse almeno hai uno spunto di partenza: PHP: function allCasesOf($word) { $wordLen = strlen($word); $word = strtolower($word); $wordList = array($word, strtoupper($word)); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtoupper($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtolower($word); } } $word = strtoupper($word); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtolower($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtoupper($word); } } return $wordList; } Utilizzo: PHP: print_r(allCasesOf("eva")); /* Output Array ( [0] => eva [1] => EVA [2] => Eva [3] => eVa [4] => evA [5] => EVa [6] => eVA [7] => EvA ) */ Clicca per allargare... per 5 minuti xD, comunque propongo un'alternativa PHP: function combo($parola) { $combo = array(strtolower($parola),strtoupper($parola)); $l = strlen($parola); $dl=1; while($dl<=$l) { for($i=0;$i<$l;$i++) $combo[] = strtolower(substr($parola,0,$i)).strtoupper(substr($parola,$i,$dl)).strtolower(substr($parola,$i+$dl,$l)); for($i=0;$i<$l;$i++) $combo[] = strtoupper(substr($parola,0,$i)).strtolower(substr($parola,$i,$dl)).strtoupper(substr($parola,$i+$dl,$l)); $dl++; } return array_values(array_unique($combo)); } Ultima modifica di un moderatore: 11 Gen 2014
flameseeker ha scritto: Sono riuscito a tirarti fuori una funzioncina in 5 minuti, mi sembra funzioni a dovere ma se così non fosse almeno hai uno spunto di partenza: PHP: function allCasesOf($word) { $wordLen = strlen($word); $word = strtolower($word); $wordList = array($word, strtoupper($word)); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtoupper($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtolower($word); } } $word = strtoupper($word); for ($j = 0; $j < $wordLen; ++$j) { for ($i = 0; $i < $wordLen; ++$i) { for ($z = 0; $z <= $j; ++$z) if (isset($word{$i+$z})) $word{$i+$z} = strtolower($word{$i+$z}); if (!in_array($word, $wordList, true)) $wordList[] = $word; $word = strtoupper($word); } } return $wordList; } Utilizzo: PHP: print_r(allCasesOf("eva")); /* Output Array ( [0] => eva [1] => EVA [2] => Eva [3] => eVa [4] => evA [5] => EVa [6] => eVA [7] => EvA ) */ Clicca per allargare... per 5 minuti xD, comunque propongo un'alternativa PHP: function combo($parola) { $combo = array(strtolower($parola),strtoupper($parola)); $l = strlen($parola); $dl=1; while($dl<=$l) { for($i=0;$i<$l;$i++) $combo[] = strtolower(substr($parola,0,$i)).strtoupper(substr($parola,$i,$dl)).strtolower(substr($parola,$i+$dl,$l)); for($i=0;$i<$l;$i++) $combo[] = strtoupper(substr($parola,0,$i)).strtolower(substr($parola,$i,$dl)).strtoupper(substr($parola,$i+$dl,$l)); $dl++; } return array_values(array_unique($combo)); }
flameseeker Utente Attivo 27 Nov 2013 699 0 0 11 Gen 2014 #4 Era per dire che non ci ho speso molte energie e che avrebbe potuto esserci qualche bug di sorta. Molto snella comunque la tua soluzione, mi piace
Era per dire che non ci ho speso molte energie e che avrebbe potuto esserci qualche bug di sorta. Molto snella comunque la tua soluzione, mi piace
M maced Utente Attivo 30 Nov 2011 48 0 6 11 Feb 2014 #5 se provo con "ciao mamma ciao", lo script non prende in considerazione esempio "Ciao mamma Ciao"
flameseeker Utente Attivo 27 Nov 2013 699 0 0 12 Feb 2014 #6 maced ha scritto: se provo con "ciao mamma ciao", lo script non prende in considerazione esempio "Ciao mamma Ciao" Clicca per allargare... Tralasciando che il tuo problema riguardava una parola e non una frase, non funziona nessuna delle due soluzioni ?
maced ha scritto: se provo con "ciao mamma ciao", lo script non prende in considerazione esempio "Ciao mamma Ciao" Clicca per allargare... Tralasciando che il tuo problema riguardava una parola e non una frase, non funziona nessuna delle due soluzioni ?