Autor Zpráva
Icka
Profil *
Zdravím, potřeboval bych do nějaké proměnné uložit obsah z pole, ale tak, jako bych u SQL dotazu použil DISTINCT.
Nějak se mi to nedaří. Zkoušel jsem php.net a nic takovýho jsem tam nenašel. Možná jsem se přehlídl... :-(
ash
Profil
array_unique
http://sk2.php.net/manual/sk/function.array-unique.php
Icka
Profil *
No to je sice hezký, ale mě to ty duplicitní hodnoty odstraní tak, že mi to nenechá ani originály, takže to vypíše jen ty, který se mi tam neopakujou.... Je to divný.
ash
Profil
Teraz som to otestoval na PHP Version 4.3.5.
Mne to funguje.
Icka
Profil *
Je to divný... I podle toho jak to tam popisují, by se to mělo chovat jak říkáš, ale skutečně mi to dělá co říkám ???
Takto to zadávám:


$uniq = array_unique($stare_pole); // count $stare pole == 801 z toho je unikátních 54

for ($i=0; $i<count($uniq); $i++)
echo $i . ". " . $uniq[$i] . "<br>"; // zobrazí jen 2 hodnoty a to ty, které tam nemají ani jednu duplicitu ??? :-)))
Icka
Profil *
Vyřešil jsem si to následovně

sort($stare);

for ($i=0; $i<count($stare); $i++) if ($stare[$i] != $stare[($i-1)]) $unique[] = $stare[$i];
ash
Profil
Ty v pôvodnom výpise predpokladáš, že ak má nové pole N členov, tak jeho indexy sú 0 až N-1, ale to je chyba.
Indexy zostanú zachované podľa starého, nové pole bude z hľadiska indexov "deravé".

Skús nové pole vypísať cez print_r alebo foreach, vtedy ti to vypíše správne.
Alebo zmeň podmienku v FOR na $i<804 - názorne uvidíš, ktoré prvky poľa ti zostali.
icka
Profil *
Áha... tak teď je mi to jasné.. Tak mi přijde, že ta funkce nějak není dopracovaná do konce :-)) Ale asi to má svůj význam.. Uteklo mi, že klíče polí zůstanou zachovány. Díky
Toto téma je uzamčeno. Odpověď nelze zaslat.