Výdělek na internetu - CZEmoney.com

Peníze, výdělek, reklama, affiliate, klikačky, PTP, MLM a další firmy
Právě je 24.05.12 16:24

Všechny časy jsou v UTC + 1 hodina




 [ Příspěvků: 10 ] 
Autor Zpráva
 PříspěvekPředmět příspěvku: PHP: seřazení vícerozměrného pole
Napsal: 02.01.11 18:25 
Offline
Uživatelský avatar

Registrován: 14.11.07 10:21
Příspěvky: 1966
Bydliště: Rochlice, Liberec, Liberecký kraj, Česká republika, Evropa, Země, Sluneční soustava, Mléčná dráha
Toto je úvodní příspěvek

Načítám seznam souborů ze složky do pole. U každého souboru mám název, velikost, datum vytvoření.

Pole vypadá nějak takto:
array(2) {
[0]=>
array(3) {
["nazev"]=>
string(13) "Crazy_Cow.flv"
["vytvoreni"]=>
string(17) "2.1.2011 16:36:54"
["velikost"]=>
string(3) "1.2"
}
[1]=>
array(3) {
["nazev"]=>
string(9) "video.flv"
["vytvoreni"]=>
string(17) "2.1.2011 17:12:49"
["velikost"]=>
string(4) "3.21"
}

Potřebuju seřadit soubory podle velikosti, názvu nebo data.

Něco jsem vyGooglil, ale nějak pořád nechápu jak to mám udělat. Poradí někdo?

_________________
Tento příspěvek mě stál můj drahocený čas, energii a úsilí. Pokud Vám jakkoliv pomohl, doufám, že to patřičně oceníte. Můj PayPal účet je jjera(at)seznam.cz. :)
 
Potřebujete něco naprogramovat v PHP? Ozvěte se mi, třeba to dokážu.
Pokud potřebujete poradit s PHP, pište do sekce Programování, ne do SZ! Pravidelně tuto sekci čtu a když budu znát odpověď, rád pomohu.
Nechci být opravován


Nahoru
 Profil  
 
Napsal: 02.01.11 18:31 
Offline
Charita
Charita
Uživatelský avatar

Registrován: 17.09.07 14:32
Příspěvky: 842
Bydliště: Plzeň
http://cs.wikipedia.org/wiki/Insertion_sort

_________________
╔╩╦═╬═╦ chceš mít svůj vlastní PTP script jen za 20$ :?: stačí napsat sz ;-) ╦═╬═╦╩╗

Bohatneme.info - moje nové stránky o výdělku na internetu

baví tě MLM? chceš se připojit do jednoho, které nechce vstupní poplatky? Pokud ano, pokračuj zde :!: Vím, jak skrýt banner od 20dollars2surf.com


Nahoru
 Profil  
 
Napsal: 02.01.11 18:45 
Offline
Ctěný člen
Uživatelský avatar

Registrován: 21.10.05 16:15
Příspěvky: 868
V PHP je sort, ktery ma jako parametry pole a komparator. sort pak vola komparator, kdykoli ho potrebuje a jako parametry mu preda dva prvky, ktere chce porovnat. Staci si teda napsat 3 komparatory a pak volat sort s tim spravnym komparatorem. Priklad:

Kód:
function cmp ($a, $b) {
  if ($a == $b)
    return 0;
  return ($a < $b) ? 1 : -1;
}
usort($names,"cmp");


Nahoru
 Profil  
 
Napsal: 02.01.11 18:52 
Offline
Uživatelský avatar

Registrován: 14.11.07 10:21
Příspěvky: 1966
Bydliště: Rochlice, Liberec, Liberecký kraj, Česká republika, Evropa, Země, Sluneční soustava, Mléčná dráha
:shock:
absolutně nechápu :D

_________________
Tento příspěvek mě stál můj drahocený čas, energii a úsilí. Pokud Vám jakkoliv pomohl, doufám, že to patřičně oceníte. Můj PayPal účet je jjera(at)seznam.cz. :)
 
Potřebujete něco naprogramovat v PHP? Ozvěte se mi, třeba to dokážu.
Pokud potřebujete poradit s PHP, pište do sekce Programování, ne do SZ! Pravidelně tuto sekci čtu a když budu znát odpověď, rád pomohu.
Nechci být opravován


Nahoru
 Profil  
 
Napsal: 02.01.11 19:02 
Offline
Ctěný člen
Uživatelský avatar

Registrován: 21.10.05 16:15
Příspěvky: 868
:D
usort je radici algoritmus. Ty mu predas pole svych prvku a on zacne radit. Problem je, ze on nevi, co v tom poli mas, jestli tam mas hrusky, jabka, nebo treba autaky. No a proto je tam komparator. To je tvoje funkce, ktera vzdy dva prvky porovna a vrati 0 kdyz se rovnaji, +1 kdyz je prvni mensi a -1, kdyz je prvni vetsi. To musis udelat ty, protoze ty vis, jestli je hruska A mensi nez hruska B nebo ne. No a prave ten usort vzdycky kdyz o nejakych dvou prvcich chce vedet, ktery je mensi a ktery vetsi, zavola komparator.
A ja ti rikam, ze kdyz udelas ty komparatory 3 (jeden na jmeno, jeden na velikost a jeden na datum), tak pak muzes udelat neco jako:
Kód:
if("datum")
  usort($soubory, "datumcmp");
elseif("velikost")
  usort($soubory, "velikostcmp");
elseif("jmeno")
  usort($soubory, "jmenocmp");


Nahoru
 Profil  
 
Napsal: 02.01.11 19:17 
Offline
Uživatelský avatar

Registrován: 14.11.07 10:21
Příspěvky: 1966
Bydliště: Rochlice, Liberec, Liberecký kraj, Česká republika, Evropa, Země, Sluneční soustava, Mléčná dráha
OK, tak budu řadit třeba podle velikosti. Funkcí si zkontroluju, jestli je ten soubor větší nebo menší, než druhý. A podle toho mi funkce vrátí 1, 0 nebo -1. To chápu.

Ale já vlastně řadím ty pole [0], [1],... Co teda budu mít v proměnných $a a $b. Přímo to pole? Takže mám porovnat $a[velikost] a $b[velikost] ?
Vím, že bych to mohl vyzkoušet, ale chci začít trochu najisto. :)

//Edit: Jo, takže to vypadá, že to bude jak píšu. Takže je to nakonec vlastně úplně primitivní. :D

_________________
Tento příspěvek mě stál můj drahocený čas, energii a úsilí. Pokud Vám jakkoliv pomohl, doufám, že to patřičně oceníte. Můj PayPal účet je jjera(at)seznam.cz. :)
 
Potřebujete něco naprogramovat v PHP? Ozvěte se mi, třeba to dokážu.
Pokud potřebujete poradit s PHP, pište do sekce Programování, ne do SZ! Pravidelně tuto sekci čtu a když budu znát odpověď, rád pomohu.
Nechci být opravován


Nahoru
 Profil  
 
Napsal: 02.01.11 20:17 
Offline
Uživatelský avatar

Registrován: 14.11.07 10:21
Příspěvky: 1966
Bydliště: Rochlice, Liberec, Liberecký kraj, Česká republika, Evropa, Země, Sluneční soustava, Mléčná dráha
Když to udělám takhle:
Kód:
function sort_velikost($a, $b)
{
   if ($a['velikost'] == $b['velikost'])
   return 0;
   
   return ($a['velikost'] < $b['velikost']) ? 1 : -1;
}

usort($soub,"sort_velikost");
var_dump($soub);

tak mi z toho vznikne:
Kód:
array(1) {
  [0]=>
  array(3) {
    ["nazev"]=>
    string(72) "Crazy_Cow.flvvideo.flvples.ples.ples.flvěščřžýáíé.flvrename.flv"
    ["vytvoreni"]=>
    string(85) "2.1.2011 16:36:542.1.2011 17:12:492.1.2011 16:47:422.1.2011 17:02:242.1.2011 18:47:46"
    ["velikost"]=>
    string(19) "1.20.210.280.210.21"
  }
}


Tedy názvy všech souborů jako jeden řetězec, atd. :|

_________________
Tento příspěvek mě stál můj drahocený čas, energii a úsilí. Pokud Vám jakkoliv pomohl, doufám, že to patřičně oceníte. Můj PayPal účet je jjera(at)seznam.cz. :)
 
Potřebujete něco naprogramovat v PHP? Ozvěte se mi, třeba to dokážu.
Pokud potřebujete poradit s PHP, pište do sekce Programování, ne do SZ! Pravidelně tuto sekci čtu a když budu znát odpověď, rád pomohu.
Nechci být opravován


Nahoru
 Profil  
 
Napsal: 02.01.11 20:31 
Offline
Ctěný člen
Uživatelský avatar

Registrován: 21.10.05 16:15
Příspěvky: 868
Tak to mas blbe uz predtim sortem, dej si tam dump. Jinak to je podle me dobre a dokonce mi to (ten tvuj kod) funguje. Jen to sorti opacne, takze si otoc ty znaminka u jednicek, ja si to furt pletu:

Kód:
array(3) {
 [0]=> array(3) { ["jmeno"]=> string(15) "prga bude druga" ["velikost"]=> string(1) "2" ["datum"]=> string(2) "11" }
 [1]=> array(3) { ["jmeno"]=> string(15) "druga bude trga" ["velikost"]=> string(1) "3" ["datum"]=> string(2) "22" }
 [2]=> array(3) { ["jmeno"]=> string(14) "trga bude prga" ["velikost"]=> string(1) "1" ["datum"]=> string(2) "33" } }

aftersort===========
array(3) {
 [0]=> array(3) { ["jmeno"]=> string(15) "druga bude trga" ["velikost"]=> string(1) "3" ["datum"]=> string(2) "22" }
 [1]=> array(3) { ["jmeno"]=> string(15) "prga bude druga" ["velikost"]=> string(1) "2" ["datum"]=> string(2) "11" }
 [2]=> array(3) { ["jmeno"]=> string(14) "trga bude prga" ["velikost"]=> string(1) "1" ["datum"]=> string(2) "33" } }


Nahoru
 Profil  
 
Napsal: 02.01.11 20:39 
Offline
Uživatelský avatar

Registrován: 14.11.07 10:21
Příspěvky: 1966
Bydliště: Rochlice, Liberec, Liberecký kraj, Česká republika, Evropa, Země, Sluneční soustava, Mléčná dráha
No jo, když jsem tam kopíroval tu funkci, tak jsem si vymazal kus kódu.

Obrázek

_________________
Tento příspěvek mě stál můj drahocený čas, energii a úsilí. Pokud Vám jakkoliv pomohl, doufám, že to patřičně oceníte. Můj PayPal účet je jjera(at)seznam.cz. :)
 
Potřebujete něco naprogramovat v PHP? Ozvěte se mi, třeba to dokážu.
Pokud potřebujete poradit s PHP, pište do sekce Programování, ne do SZ! Pravidelně tuto sekci čtu a když budu znát odpověď, rád pomohu.
Nechci být opravován


Nahoru
 Profil  
 
Napsal: 03.01.11 11:14 
Offline
Ctěný člen
Uživatelský avatar

Registrován: 21.10.05 16:15
Příspěvky: 868
jjera píše:
Takže je to nakonec vlastně úplně primitivní. :D

Presne tak. :mrgreen:
Navic ten usort bude urcite implementovanej nejakym slusnym algoritmem s rozumnou slozitosti.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odpovědět na téma  [ Příspěvků: 10 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto téma: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Powered by phpBB® Forum Software © phpBB Group

Český překlad – phpBB.cz
phpBB SEO
[ Time : 0.131s | 18 Queries | GZIP : On ]