Roberts.R Posted January 28, 2010 Report Share Posted January 28, 2010 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 More sharing options...
Kaklz Posted January 28, 2010 Report Share Posted January 28, 2010 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 More sharing options...
EdgarsK Posted January 28, 2010 Report Share Posted January 28, 2010 (edited) 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 January 28, 2010 by EdgarsA Link to comment Share on other sites More sharing options...
Roberts.R Posted January 28, 2010 Author Report Share Posted January 28, 2010 (edited) 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 January 28, 2010 by Roberts.R Link to comment Share on other sites More sharing options...
EdgarsK Posted January 28, 2010 Report Share Posted January 28, 2010 dari ta :) Link to comment Share on other sites More sharing options...
Roberts.R Posted February 13, 2010 Author Report Share Posted February 13, 2010 @EdgarsA, es tagad paskatījos Tavu ieteikumu ar svaigu prātu, un sapratu, ka jā, šis variants arī der :) Bet @Kaklz vienkāršais break; atrisināja manu problēmu :) Paldesas! Link to comment Share on other sites More sharing options...
Recommended Posts