vacis Posted December 5, 2006 Report Share Posted December 5, 2006 Vai ir iespējams papildināt FOREACH ciklu, lai tas aplūko katru txt faila rindu sākot no otrās rindas? Ja Nē, tad kāda būtu vienkāršākā alternatīva lai nolasītu pa vienai visas faila rindas, izņemot pirmo? $fails = ("nosaukums.txt"); $list=file($fails); foreach($list as $vert){ $detalizeti = explode("///", $vert); $elements0= $detalizeti[0]; $elements1= $detalizeti[1]; echo"$elements0"; echo"$elements1"; } Link to comment Share on other sites More sharing options...
andrisp Posted December 5, 2006 Report Share Posted December 5, 2006 Viens no risinājumiem būtu ar php.net/array_shift pirms foreach. Vēl viens būtu iekš foreach ielikt: if (isset($not_first)) { // kods } else { $first = 1; } Ā, var vēl arī ar for: for($i = 1; $i < count($list); $i ++) { // kods .. rindiņai piekļūstam ar $list[$i] } Un gan jau vēl ir kādi pieci labāki veidi :). Link to comment Share on other sites More sharing options...
hmnc Posted December 5, 2006 Report Share Posted December 5, 2006 array_shift() Link to comment Share on other sites More sharing options...
vacis Posted December 5, 2006 Author Report Share Posted December 5, 2006 Paldies, izdevās. Ja nu kādam arī interesē, galarezultāts izskatās šādi: $fails = ("nosaukums.txt"); $list=file($fails); for($i = 1; $i < count($list); $i ++) { $detalizeti = explode("///", $list[$i]); $elements0= $detalizeti[0]; $elements1= $detalizeti[1]; echo"$elements0"; echo"$elements1"; } Link to comment Share on other sites More sharing options...
bubu Posted December 5, 2006 Report Share Posted December 5, 2006 Jāatkārtojas: echo "$a"; ir muļķīgi echo $a; ir kā normāli cilvēki raksta Nez kur cilvēki iemācas tādas muļķības... Tā ir ka nesāk ar paskālu/beiskiku. Link to comment Share on other sites More sharing options...
Stopp Posted December 6, 2006 Report Share Posted December 6, 2006 Un labāk pirms for definē to masīva garumu kādā mainīgajā, un tad pie tiem for nosacījumiem liec to mainīgo, citādi var sanākt, ka tev 200 reizes skaita no 1 līdz 200 (masīva garums). Starp citu, vai kāds nevar mani apgaismot, kas notiek šai array_shift piemērā? <?php $stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack); print_r($stack); ?> This would result in $stack having 3 elements left: Array ( [0] => banana [1] => apple [2] => raspberry ) Teorētiski itkā $stack vajadzētu palikt ar 4 elementiem, bet tam jaunajam masīvam būtu jāizvedojas ar nosaukumu $fruit, ne? Es tā drusku nesaprotu, kāpēc izmainas $stack masīvs. Link to comment Share on other sites More sharing options...
andrisp Posted December 6, 2006 Report Share Posted December 6, 2006 Kāpēc var sanākt, ka skaita 200 reizes no 1 līdz 200 ? Par array_shift - pavisam vienkārši - tiek izņemts pirmais masīva elements. Un netiek izveidots jauns masīvs. Izlasi taču manuālī ;). Link to comment Share on other sites More sharing options...
J0ke Posted December 6, 2006 Report Share Posted December 6, 2006 ja jau ejam visām rindiņām cauri tad for vietā izmantojam foreach! no sākuma attiecīgā faila array noshiftojot ;> Link to comment Share on other sites More sharing options...
john.brown Posted December 6, 2006 Report Share Posted December 6, 2006 Nu, par to foreach visai strīdīgi... Imho, foreach jāizmanto ar associatīvajiem massīviem konstrukcijā tipa : foreach($array as $key => $value) {} Visos citos gadījumos būtu pareizāk izmantot for(), jo šamais ar visu count() ir ātrāks :) Pats gan slinkuma , gan īsāka pieraksta dēļ, šo jauko domu ne vienmēr ievēroju... ;) Link to comment Share on other sites More sharing options...
v3rb0 Posted December 6, 2006 Report Share Posted December 6, 2006 vēl jau ir tādi next(); un current(); kopā ar do/while to pašu var šādi panākt. $list = array('pirmaa', 'otraa', 'tresaa','ceturtaa','piektaa'); next($list); do { echo current($list).'<br />'; } while(next($list)); Link to comment Share on other sites More sharing options...
Recommended Posts