Jump to content
php.lv forumi

foreach


Roberts.R

Recommended Posts

Labrīt!

Vēl jo projām plēšos ar tām laika ziņām.

Viss iet gandrīz vai kā nākas, taču ir viena problēma, kurai es nespēju saviem spēkiem atrast atrisinājumu.

Es pat nezinu, ko par savu problēmu stāstīt, bet varbūt kods izteiks visu.

 

$xml = simplexml_load_file("http://informer.gismeteo.ru/xml/26240_1.xml");

foreach($xml->REPORT->TOWN->FORECAST as $b){

$laiks = $b['hour'].":00<br />";
$min = $b->TEMPERATURE['min']." - min temp<br />";
$max = $b->TEMPERATURE['max']." - max temp<br />";

echo $laiks;
echo $min;
echo $max;

} //foreach beigas

echo "---<br />";
echo $laiks;
echo $min;
echo $max;

 

izdod:

02:00

-18 - min temp

-20 - max temp

08:00

-13 - min temp

-15 - max temp

14:00

-10 - min temp

-12 - max temp

20:00

-10 - min temp

-12 - max temp

---

20:00

-10 - min temp

-12 - max temp

 

Tātad... Kas man ir vajadzīgs:

Vajadzīgs ir tas, lai rādās laika ziņas priekš attiecīgā laika.

Foreach gadījumā tiek parādītas visas ziņas. Vajadzētu, lai rāda tikai pašu augšējo.

Mēģināju izprintēt ārpus foreach apgabala, printējās tikai pēdējās ziņas.

 

Vai ir iespēja pateikt foreach'am, lai dod ārā tikai pašu pirmo, vai arī nejaucot iekšā foreachu.

 

Help! :)

Link to comment
Share on other sites

kā būtu ar

<?php
$xml = simplexml_load_file("http://informer.gismeteo.ru/xml/26240_1.xml");

$b = $xml -> REPORT -> TOWN -> FORECAST[0];
$laiks = $b['hour'].":00<br />";
$min = $b->TEMPERATURE['min']." - min temp<br />";
$max = $b->TEMPERATURE['max']." - max temp<br />";
echo $laiks;
echo $min;
echo $max;

 

Ja dikti gribās to izdarīt ar foreach komandu, tad no cikla jebkurā mirklī vari izlekt ārā ar 'break' komandu:

 

foreach ($arr as $item){
// do some stuff only once
break;
}

Link to comment
Share on other sites

vispar ja tev vajag tiesi kadu no laikiem tad dari sadi.

<?
$xml = simplexml_load_file("http://informer.gismeteo.ru/xml/26240_1.xml");

$vajadzigs = array(
'day' => '28',
'month' => '01',
'year' => '2010',
'hour' => '14'
);

foreach($xml->REPORT->TOWN->FORECAST as $b){
$attr = $b->attributes();
if($attr["day"]==$vajadzigs["day"]&&
$attr["month"]==$vajadzigs["month"]&&
$attr["year"]==$vajadzigs["year"]&&
$attr["hour"]==$vajadzigs["hour"]){
	echo "Maksimala temperatura: {$b->TEMPERATURE["max"]}";
	echo "Minimālā temperatura: {$b->TEMPERATURE["min"]}";
	break;
}
}
?>

Edited by EdgarsA
Link to comment
Share on other sites

okee, paldies par respondu :)

Kad būs laiks, ta pieķeršos klāt, un ziņošu, kā veicies :)

 

@Kaklz: Nu jā, man tieši ar foreach gribās, jo tur tie nosaukumi ir reizēm tik gari, un negribās visu kodu pieķēzīt ar garām desām :)

Edited by Roberts.R
Link to comment
Share on other sites

  • 3 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...