Autor | Zpráva | ||
---|---|---|---|
pmasarik Profil |
#1 · Zasláno: 18. 8. 2006, 21:42:18
Mám pole ktoré je napĺňané číslamy od užívatela cez formulár a chcem kontrolovať či nezadal napríklad dve rovnaké čísla.
Tie čísla sú použité ako klúče a ak by boly dve rovnaké tak je to tam, kde som to nechcel. Ako sa dá najednoduchšie skontrolovať pole či nemá rovnaké klúče a ak má tak to neprijať a vyhlásiť za chybu? |
||
Hugo Profil |
#2 · Zasláno: 18. 8. 2006, 22:36:15
Pole nemůže mít stejné klíče. Pokud vložíš do pole prvek s klíčem, který už existuje, tak nový prvek nahradí ten starý.
|
||
Aesir Profil |
#3 · Zasláno: 18. 8. 2006, 22:37:12
pmasarik:
Ako sa dá najednoduchšie skontrolovať pole či nemá rovnaké klúče Ale pole přece nemůže mít dvě hodnoty stejného klíče. |
||
Lukáš Chmela Profil * |
#4 · Zasláno: 18. 8. 2006, 23:33:02
if(is_array($pole[$danecislo])) {echo'Toto číslo jste již zadal!'; return false;}
Bude to stačit? Je štěba dát tenhle script před zapsáním čísla do pole ;-) |
||
Hugo Profil |
#5 · Zasláno: 18. 8. 2006, 23:35:53
Lukáš Chmela
To co jsi napsal je nesmysl. Bude to fungovat pouze pro 2D pole. Navíc jak již bylo napsáno dvakrát nahoře, v poli nemůžou být dva prvky se stejným klíčem. |
||
Anonymní Profil * |
#6 · Zasláno: 19. 8. 2006, 01:25:16
ja najcastejsie pouzivam isset($pole['kluc']) pri kontrole ci dany prvok existuje
|
||
pmasarik Profil |
#7 · Zasláno: 19. 8. 2006, 08:10:59
Chlapy máte pravdu, mal som chybu v tom, že mne vytváralo pole ktoré mohlo mať viac rovnakých klúčov, už som bol prepracovaný a nenapadlo ma urobiť klúče rozdielne a hodnoty dávat napríklad aj rovnaké.
Takže teraz otázka znie ako skontrolovať či nie sú rovnaké tie hodnoty? |
||
Hugo Profil |
#8 · Zasláno: 19. 8. 2006, 08:27:24
Funkce In_Array()
|
||
havs Profil |
#9 · Zasláno: 19. 8. 2006, 09:54:21 · Upravil/a: havs
... a něco si na zjištění napsat, třeba:
$test = array_count_values ($pole); foreach($test as $pocet) { if($pocet!=1) { echo "jsou tam duplicity"; exit; } } nebo: pole jde snadno od duplicitních hodnot vyčistit $ciste_pole = array_unique ($pole); // a další běh podmínit existencí všech čísel |
||
havs Profil |
#10 · Zasláno: 19. 8. 2006, 10:57:20
chybka v prvním řešení,
na konci běhu podmínky má být exit; - už jsem to opravil |
||
pmasarik Profil |
#11 · Zasláno: 19. 8. 2006, 11:22:10
havs
Super presne toto som potreboval. Urobiť kontrolu nie je problém, ale použit tú správnu funkciu, aby to bolo elegantne urobené je už niekedy ťažšie. Nad array_unique som tiež rozmýšlal, ale array_count_values je určite pre moje riešenie ideálnejšia funkcia. Dík moc za radu a prajem krásny víkend... |
||
havs Profil |
#12 · Zasláno: 19. 8. 2006, 11:46:43
neni zač a díky za povzbudivé přání, docela se hodí :-)
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0