rudzis Posted December 6, 2004 Report Share Posted December 6, 2004 Pavisam vienkārša lieta: pirmais:::1:::2:::3 otrais:::4:::5:::5 tresais:::7:::8:::9 ceturtais:::10:::11:::12 (rindiņas atdalās ar newline). Tātad, vajag, lai zinot, kādas mainīgajā noteiktas rindas pašu pirmo masīva elementu, explodējot pēc ::: varētu dabūt arī noteiktas pārējās šīs rindiņas vērtības. Piem., ja es gribu kaut ko no trešās (norādot pirmo elementu "tresais"), lai kaut kādā veidā varētu parādīt konkrēti 7, 8 vai 9. Neder man norādīt rindiņas skaitu. Vajag atrast īsto rindu tieši pēc paša pirmā tās elementa. Zinu, murgains jautājums. Pats ilgi domaju, ka lai to izstāsta. ;) Link to comment Share on other sites More sharing options...
рпр Posted December 6, 2004 Report Share Posted December 6, 2004 kautka taa: $failamasivs - file('tavs fails'); foreach($failamasivs in $rinda) { $rindaselementi = ecplode(':::', $rinda); $masivs[$rindaselementi[0] = $rindaselementi; } print_r($masivs['tresais']); Link to comment Share on other sites More sharing options...
rudzis Posted December 6, 2004 Author Report Share Posted December 6, 2004 (edited) Jaa, kaut kaa taa, bet kaa lai dabuu tikai konkreetos elementus no taas rindas? P.S. Laikam gan foreach as, nevis foreach in... Edited December 6, 2004 by rudzis Link to comment Share on other sites More sharing options...
рпр Posted December 6, 2004 Report Share Posted December 6, 2004 echo $masivs['tresais'][1]; echo $masivs['tresais'][2]; echo $masivs['tresais'][3]; Link to comment Share on other sites More sharing options...
bubu Posted December 7, 2004 Report Share Posted December 7, 2004 Jaa, kaut kaa taa, bet kaa lai dabuu tikai konkreetos elementus no taas rindas? Tak tu to kodu, ko te parādīja pamēģināji? Rādās, ka ne! Jo tad tu visu uz ekrāna redzētu, kā ko dabūt! <_< Link to comment Share on other sites More sharing options...
rudzis Posted December 7, 2004 Author Report Share Posted December 7, 2004 Paldies, viss OK. Link to comment Share on other sites More sharing options...
rudzis Posted December 7, 2004 Author Report Share Posted December 7, 2004 Aha, man veelviens jaut. Kaa samekleejot peec pirmaa elementa eertaak manipuleet ar visu rindu? Shajaa gadiijumaa vienkaarshi izmest? Var jau kaut kaa uzzinaat kaartas skaitli failaa tai rindai un tad visu paareejo paarrakstiit, bet varbuut var vienkaarshaak? Link to comment Share on other sites More sharing options...
bubu Posted December 8, 2004 Report Share Posted December 8, 2004 unset($masivs['treshais']); Link to comment Share on other sites More sharing options...
rudzis Posted December 8, 2004 Author Report Share Posted December 8, 2004 Kaut kāds murgs ar tiem masīviem. Ar unset pietiek, lai dabūtu ārā no masīva, bet viss masīvs ir fails. Man vajag arī visu atlikušo masīva daļu rakstīt atpakaļ failā. Mēģināju ielasī to failu kā masīvu, pēc tam visa šitā štelle ar ielasīšanu pēc pirmā elementa, un tad unset'oju nevajadzīgo rindu., bet pēc tam atkal faila saturu bāzt atpakaļ, tomēr izmestā rinda nepazūd, jo unsetojas tikai uz doto mirkli. Kā lai es dabūju atsevišķā mainīgajā visu masīvu bez unset'otās rindas? :huh: Link to comment Share on other sites More sharing options...
Gacha Posted December 8, 2004 Report Share Posted December 8, 2004 Pāņem to masīvu $fails un nokopē: $fails_copy = $fails; Visu infu tu čakarē tam _copy, bet kad nepieciešams atgriezt atpakaļ, tad izmanto $file. Cerams, ka domu saprati :) Link to comment Share on other sites More sharing options...
bubu Posted December 8, 2004 Report Share Posted December 8, 2004 Te jau nesen tādu kodu jau kādam deva! // ielasa failu: $mas = file('data.txt'); // $mas tagad ir masīvs dari ko gribi ar viņu unset($mas[100]); // izdzēšam 101. rindu $f = fopen('data.txt', 'w'); // atveram rakstīšanai foreach($mas as $m) { // ierakstam katru rindu atpakaļ fwrite($f, $m . "\n"); } fclose($f); // aizveram failu Citēju tevi "viss masīvs ir fails", nē, masīvs nav fails. Dati ir vai nu masīvā, vai failā, un tu daries ar vieniem datiem tikai. Bet līdzko tu tos pamaini, tad tev viņi loģiski, ka jāsaglabā atpakaļ. Kā tad citādāk tu to biji iedomājies? Link to comment Share on other sites More sharing options...
rudzis Posted December 9, 2004 Author Report Share Posted December 9, 2004 Izmēģināju dažādus variantus, bet nevaru atrsat kļūdu ;) $user = "tresais" // piemeeram.... $visi = fopen('tiri/piri/fails.txt', 'a'); // mēģināju ar pārrakstīšanu (w) - fails tukšs.... $lietotaji = file('tiri/piri/fails.txt); foreach($lietotaji as $lietotajs) { $ieraksti = explode(':::', $lietotajs); $viss[$ieraksti[0]] = $ieraksti; unset($viss[$user]); foreach($visi as $useri) { fwrite($visi, $useri); $fails = fopen('tiri/piri/fails.txt', 'a'); $jaunais = "$tresais:::$ceturtais:::$utt\n"; fwrite($fails, $jaunais); fclose($fails); fclose($visi); } } Nu viss it kā ir, bet man nepielec kādā kārtībā to visu sakārtot, lai vispirms vienu elementu izmestu, pēc tam uztaisītu jaunu, tikai ar jaunajām vērtībām mainīgajos, un tad ierakstīt atpakaļ? Varbūt vēl ir kāds veids, lai nepierakstītos beigās, bet nomainītos tieši tas pats, un masīvs saglabātu visu kārtību? Link to comment Share on other sites More sharing options...
bubu Posted December 9, 2004 Report Share Posted December 9, 2004 Tev tak tur ir absolūts sviests. Ciklu murgi! Sadali kodu 3 daļās: 1) nolasa failu 2) izdzēš masīva elementu 3) ieraksta atpakaļ Tagad loģiski padomā, ko katrai daļai ir jādara pa vienai koda rindiņai. Ievēro! šīs daļas ir neatkarīgas viena no otras (atšķirībā no tava koda), kur 2 un 3 daļa ir zem 1 daļas. Tb lasīšanas laikā tiek kautkas dzēsts un rakstīts atpakaļ. Link to comment Share on other sites More sharing options...
rudzis Posted December 9, 2004 Author Report Share Posted December 9, 2004 Jā, piekrītu. Man tur ir pilnīgs murgs, turklāt tas viss vēl piederas funkcijai. Vispār var nojūgties ;) Link to comment Share on other sites More sharing options...
orion Posted December 9, 2004 Report Share Posted December 9, 2004 Tamdēļ es visiem saku - lietojiet db!!! tik daudz problēmu atkrīt... uff... ((: Link to comment Share on other sites More sharing options...
Recommended Posts