Jump to content
php.lv forumi

foreach izpildīt no otrās txt rindas


vacis

Recommended Posts

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

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

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

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

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

×
×
  • Create New...