eregi Posted June 26, 2008 Report Posted June 26, 2008 hai, nelielas problēmas man sagādā array'u izveidošana, vārdu sakot: Ir skripts, kurš nolasa ar readdir foldera saturu, vēlāk to iz'echo, bet man vajag pašlaik, lai izecho pēc date ordera, tad nu tā, itkā dzirdēju, ka visu info vajag ievietot array( date => filename,); un pēctam ar krsort'u. Vai kāds var parādīt kā pievienot array'ā jaunas vērtības? nezinu cik nu sakarīgi sanāca..
andrisp Posted June 26, 2008 Report Posted June 26, 2008 hmm.. $x = array(); $x['lja lja'] = 'desa'; $x[] = 'cita desa'; $x[100] = 'vēl viena desa'; $x['zhzhzh'] = 'daudz desu'; var_dump($x); ?
eregi Posted June 26, 2008 Author Report Posted June 26, 2008 Kaut kā šķiet, ka Tavs variants nederēs. :( Reku gabals no skripta, varbūt būs vieglāk - http://paste.php.lv/7564?lang=php
eregi Posted June 26, 2008 Author Report Posted June 26, 2008 http://paste.php.lv/7565?lang=php izvada man tikai 1 ierakstu - 1208612935 = bilde.JPG
andrisp Posted June 26, 2008 Report Posted June 26, 2008 Tu tak katrā iterācijā pārraksti to masīvu no jauna tur. To $la = array(); liec pirms while. Kā arī - iesaku darīt šādi: $la[$blalba][] = $fails, jo teorētiski diviem failiem var būt vienāds modifikācijas laiks. Tas gan nozīmē, ka izvadot tev vajadzēs divus while (nestēti).
Aleksejs Posted June 26, 2008 Report Posted June 26, 2008 Vai nav tā, ka visiem failiem ir viens un tas pats modificēšanas laiks? ;) Nu vēl variants: $masivs[]=Array($datums,$fails);
eregi Posted June 26, 2008 Author Report Posted June 26, 2008 Tādēļ lieku $la[filemtime($dirr.$file).md5(uniqid())] = $file; liels paldies jums! :)
eregi Posted June 26, 2008 Author Report Posted June 26, 2008 vispār, jā, iepriekš uniqid vietā liku time(). :)
andrisp Posted June 26, 2008 Report Posted June 26, 2008 Arī ja izmanto time(), tad no tā md5 nav jēgas. ;)
eregi Posted June 26, 2008 Author Report Posted June 26, 2008 ai.. googlē vakar atradu, nepiesienes, bet nu paldies, ka vismaz norādij.q
bubu Posted June 26, 2008 Report Posted June 26, 2008 Es gan būtu to visu darījis tā, ka salicis vienā masīvā visus faila vārds un tad ar usort sakārtojis (kā salīdzināšanas funkciju padotu fju, kas abiem padotajiem faila vārdiem nosaka to laiku un salīdzina to). Vai arī, ja failu ir daudz un faila laika noteikšanas funkcija usortā iebremzē (jo tā var tikt izsaukta vairākkārtīgi vienam un tam pašam failam), tad šādi: $arr = array(); for each failam $fname ar tā laiku $ftime { $arr[] = array($fname, $ftime); } sort($arr); for each $a in $arr { // te lieto $a[0] kā faila vārdu }
marrtins Posted June 26, 2008 Report Posted June 26, 2008 Vienā masīvā liekam laikus, otrā failu nosaukumus. array_multisort($times, SORT_NUMERIC, SORT_DESC, $names);
Recommended Posts