Raiviic Posted January 8, 2009 Report Share Posted January 8, 2009 Sveiki, saakshu ar to ka googlets ir 2dienas, un nav saprashanas joprojam kaa to dabut gatavu (pilnigs idiots es neesmu). Tatad problema: ir multidimensiju masivs while ciklaa - ir vajadziba ar php palidzibu sakartot masivu pec vienas no vertibam: attiecigi: $i = 0; while (nosacijums) { $masivs = array(); $masivs[$i] = $xyz[mainiga vertiba]['strings']; $masivs2[] = $masivs; unset($masivs); $i++; } Interneta atradu ka lai ierakstitu masiva kas atrodas cikla vajag izmantot velvienu masivu ka bufferi. es pieljauju ka ir kautkas vieglaks bet diemzel prata spejas to neredz vel. Tatad problema ir sekojosha - sakartot (rsort vai foreach)un izvadit datus no masiva $masivs[$i] kartojot tos pec ['strings'] vertibas es ceru ka uzrakstiju saprotami un kads spec palidzet ar padomu Paldies. Link to comment Share on other sites More sharing options...
bubu Posted January 8, 2009 Report Share Posted January 8, 2009 Vai tu http://php.net/usort apskatīji? Ja precīzāk, tad Example #2. Link to comment Share on other sites More sharing options...
Raiviic Posted January 8, 2009 Author Report Share Posted January 8, 2009 (edited) meginashu tagad skalji domat un saprast - piemera ir - $fruits[0]["fruit"] = "lemons"; a man ir $masivs[$i] = $xyz[mainiga vertiba]['strings']; shi laikam skaitas kartoshana pec key vertibas(piemeeraa) a man taka vajadzetu pec value vertibas es nerunaju mulkjibas tagad ? shaja gadijuma strada 2+3 = 5 un 5 = 2+3 ? Edited January 8, 2009 by Raiviic Link to comment Share on other sites More sharing options...
bubu Posted January 8, 2009 Report Share Posted January 8, 2009 Hm.. paskatījos cītīgāk uz tavu kodu - tur kautkāds krapains masīvs tev taisās. Tipa (ja pareizi saprotu): $masivs2 = array( array(0 => "strings1"), array(1 => "strings2"), array(2 => "strings3"), ); Kā kautko tādu tu tur gribi sakārtot? Katram stringam ir piesaisīta tas skaitils pēc kārtas ($i), kuru nedrīkst pazaudēt? Vai kā? Link to comment Share on other sites More sharing options...
Raiviic Posted January 8, 2009 Author Report Share Posted January 8, 2009 (edited) precizi katram tam $masivs[$i] $i vertiba ir cipars kas ir vitali svariga cikla pareizai izpildei, bet kartoshanu reali vajag pec ta otra masiva pedejas vertibas -varbut ir iespejams to visu iepust vel kada 3 masiva un tad vnk sarkartot pie izvades ? -attiecigi vilkt ara pa vienai vertibai pec cikla izpildes un tad pust ieksha 3shaja masiva, galvanais ir lai nezud saikne starp $masivs[$i] un ['strings'] vertibam -man tiesham php pagaidam ir uz jus - iespejams ka shis viss izklausas vnk stulbi Edited January 8, 2009 by Raiviic Link to comment Share on other sites More sharing options...
bubu Posted January 8, 2009 Report Share Posted January 8, 2009 Tev vienkāršāk būtu taisīt to masīvu šādi: $masivs2 = array( array("strings1", 0), array("strings2", 1), array("strings3", 2), ); T.i uztaisīt masīvu no pārīšiem: kārtojamās vērtības, un tavas vitāli svarīgās informācijas - tā integera. Un tad kārtot pēc katra elementa pirmās vērtības ar to pašu usort funkciju. Link to comment Share on other sites More sharing options...
Raiviic Posted January 8, 2009 Author Report Share Posted January 8, 2009 tulit notesteshu ;) Link to comment Share on other sites More sharing options...
Grey_Wolf Posted January 8, 2009 Report Share Posted January 8, 2009 (edited) $masivs[$i] $i vertiba ir cipars kas ir vitali svariga cikla pareizai izpildei, shadi nav labi dariit , jo kadreiz vari nonak situacija kad pietruuks RAM , megjinashu paskaidrot kapec ... $masivs[0], $masivs[100] --> idejiski ir 2 vienibas RAM ? Ta tikai sakumaa liekas , faktiski ir 101 vienibas , tas ir Standarta masivu gadijuma Tapat Atminja tiks izveidots masiva apgabals kurs buus preciizi ( Lielaka masiva vertiba+1 ) liels .. Ipashi labi sho ideju var redzet JS (paskatoties ar FF adinu FireBug) <script type="text/javascript"> var mycars = new Array(); mycars[0] = "Saab"; mycars[1] = "Volvo"; mycars[2] = "BMW"; mycars[20000] = "ccc"; for (i=0;i<mycars.length;i++) { document.write(mycars[i] + "<br />"); } </script> palaid sito un redzeesi Cik masiva elementu tiks izveidots ... Tas pats notiek ar PHP , tikai PHP automatiski vinjus nodefinees, JS pakliegs ka elements nav definets --- Tapec tomer labak darii kaa buubu ieteica .. I vieglak izmantot gan drosak , gan atrak (arii pei datu sortesanas tiks izveidots tas pilnais masiivs ... Ja galiigi nevar no ta izvairiities (izmantot Indeksa skaitli), tad parvert to kaa Asocitiivo masivu, pieliekot prieksaa kadu Simbolu & ieliekot pedinjas ... piem $masivs[123456789] => $masivs['A123456789'] jebkuraa bridii sameraa vienkarshi varesi dabuut atpakalj 123456789 (nonjemot nost 1 simbolu ) ---------------- Edit: iespejams ka tas piemers nav parak veiksmiigs, bet nu fakts paliek fakts Edited January 8, 2009 by Grey_Wolf Link to comment Share on other sites More sharing options...
Raiviic Posted January 8, 2009 Author Report Share Posted January 8, 2009 (edited) tulit atkodishu ka man tur vajag un tad zinjoshu kas sanacis, un paldies abiem par informaciju, izmantoshu bubu piemeru -jaa nu viss laikam izdevies bet nu mini prob kura neliek mieru teksts izvadas pec principa 1 10 11 2 21 22 3 31 32 bet prasas taka logiski lai izvaditos, attiecigi 1 2 3 10 11 21 22 31 32 attiecigi karto nevis pec visa skaitlja bet pec katra cipara atsevishkji Edited January 9, 2009 by Raiviic Link to comment Share on other sites More sharing options...
Roze Posted January 9, 2009 Report Share Posted January 9, 2009 Izmanto sort() http://lv.php.net/sort un pie flagiem norādi SORT_NUMERIC (konkrētie flagi jebkurai no *sort() funkcijām).. Link to comment Share on other sites More sharing options...
bubu Posted January 9, 2009 Report Share Posted January 9, 2009 -jaa nu viss laikam izdevies bet nu mini prob kura neliek mieru Tu taču teici, ka tev stringi jākārto, nevis skaitļi. Ne? Link to comment Share on other sites More sharing options...
Raiviic Posted January 9, 2009 Author Report Share Posted January 9, 2009 (edited) nolohojos - tur $xyz[mainiga vertiba]['strings']; - ['strings'] vertiba bus skaitlji -ar to sort() nav ta, ka strada tikai ja masiva ir tikai skaitlji, man tur ir 2 vertibas masiva gan strings gan skaitlis - jakarto skaitlis un tad strings japiemet klat preti ciparam? Edited January 9, 2009 by Raiviic Link to comment Share on other sites More sharing options...
Recommended Posts