Autor Zpráva
pmasarik
Profil
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
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
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 *
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
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 *
ja najcastejsie pouzivam isset($pole['kluc']) pri kontrole ci dany prvok existuje
pmasarik
Profil
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
Funkce In_Array()
havs
Profil
... 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
chybka v prvním řešení,
na konci běhu podmínky má být exit; - už jsem to opravil
pmasarik
Profil
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
neni zač a díky za povzbudivé přání, docela se hodí :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0