Autor | Zpráva | ||
---|---|---|---|
karbon Profil * |
#1 · Zasláno: 25. 4. 2006, 19:50:27
Dobrý den, potřeboval bych nějak seřadit prvky v poli podle čísla, které má každý prvek na začátku. Toto číslo zjistím f-cí explode, ale nevím jak přesně seřadit tyto data, tak aby jako první byla část pole s nejmenším číslem. Pro ukázku sem dávám i script, který ale nefunguje:
$je_lepsi = array(); for($i=0; $i < $kolik; $i++){ $zacatek2 = explode('.', $vypis[$i]); $zacatek2 = $zacatek2[0]; echo "$zacatek2<br>\n"; if($zacatek2 < $je_lepsi){ array_push($je_lepsi, $zacatek2); } else{ array_unshift($je_lepsi, $zacatek2); } } for($j=0; $j <$kolik; $j++){ echo $je_lepsi[$j].", "; } jako data dostane textové řetězce stylu "číslo*text, který je potřeba seřadit", díky za každou pomoc |
||
pmasarik Profil |
#2 · Zasláno: 25. 4. 2006, 20:45:37
Mna len napadá dat tie čísla po získaní s toho pola ako $key (klúč) k tej textovej hodnote a následne to zoradiť podla tých klúčov (ak sa pole nezoradí podla klúčov aj samo).
Nechce sa mi to písať ale ak vieš PHP tak takto to skús urobiť... |
||
rabbit Profil |
#3 · Zasláno: 25. 4. 2006, 20:53:01
Zbytečně objevujete ameriku ... vymýšlíte sortovací algoritmy, když už jsou přímo v php. pmasarik to píše dobře. V php je spousta třídících funkcí pro pole. Viz. sekce manuálu "Array Functions". Namátkou jsou to funkce jako asort(), arsort(), ksort() ... atd..
|
||
karbon Profil * |
#4 · Zasláno: 25. 4. 2006, 21:58:19
A když už o tom mluvíte, mohl byste mi ukázat nějaký příklad? Budu za něj velmi rád
|
||
rabbit Profil |
#5 · Zasláno: 26. 4. 2006, 02:07:37 · Upravil/a: rabbit
např.:
Dodatečně mě napadá upozornění, že v výše uvedeném případě se ti ta čísla v tom výpisu nesmí opakovat! |
||
karbon Profil * |
#6 · Zasláno: 26. 4. 2006, 19:40:30
Díky moc za rady a čas, jen ještě malá otázečka: když chci vypsat už setříděné pole pomocí smyčky, v hranaté závorce musím použít takovou hodnotu, jakou měl klíč (třeba $pole[cislo_klice]). Tyto čísla můžou být v rozsahu nula až třeba do desítek tisíc, tak jsem našel f-ci array_combine, abych to nějak "zkosil". Je to vhodná funkce?
|
||
rabbit Profil |
#7 · Zasláno: 27. 4. 2006, 10:05:00 · Upravil/a: rabbit
To je zbytečné. Desítky tisíc php nevadí. Pokud ty klíče nepotřebuješ (čísla v nich obsažená), vypisuj pole následně opět přes
foreach ($pole as $prvekPole) { Pokud potřebuješ pro výpis nějaké počítadlo, přidej si tam
PS:array_combine() je f-ce naprosto nevhodná ;) To už radši zkus použít array_values(). |
||
karbon Profil * |
#8 · Zasláno: 27. 4. 2006, 15:06:53
díky moc za rady
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0