X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Как установить количество проходов цикла foreach?
happyhand
happyhand
Topic Starter сообщение 22.3.2010, 18:30; Ответить: happyhand
Сообщение #1


Подскажите, как в цикле foreach сделать только один проход (показать один результат)?
Вот код:
[PHP]
foreach ($xml->REPORT->TOWN->FORECAST as $f)
{
echo "";
}
[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 22.3.2010, 18:42; Ответить: alexdrob
Сообщение #2


сделать без цикла через list и each
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 22.3.2010, 19:13; Ответить: ZhukV
Сообщение #3


Можеш в конце поставить break; он останавливает любой цыкл

Вот пример
[PHP]
foreach($ar as $f){
echo $f;
break;
}
[/PHP]

либо можна установить при указаном условие.
Вот пример цыкла, который будет исполнятся ровно 10 раз:
[PHP]
foreach($ar as $f){
$c++;
echo "$f<br>";
if($c==10){break;}
}
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
happyhand
happyhand
Topic Starter сообщение 22.3.2010, 21:05; Ответить: happyhand
Сообщение #4


Так, а как теперь пустить цикл со второго значения, т.е., получается у меня идут два цикла поочереди - первый вынимает только первое значение, второй - со 2-го по 4-е.
Вот типа такого:
[PHP]
foreach($ar as $f){
$c++;
echo "$f<br>";
if($c==1){break;}
}
foreach($ar as $f){
$c=2;
$c++;
echo "$f<br>";
if($c==4){break;}
}
[/PHP]
но так не работает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 22.3.2010, 21:21; Ответить: alexdrob
Сообщение #5


[PHP]$f = each($ar);[/PHP]
извлечёт 1 элемент

[PHP]for($i=0;$i<4;$i++){
$f = each($ar);
}[/PHP]
извлекутся 4 элемента
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
happyhand
happyhand
Topic Starter сообщение 22.3.2010, 21:57; Ответить: happyhand
Сообщение #6


Я правильно понял, так нужно?
[php]
for($i=0;$i<4;$i++){
$ff = each($xml->REPORT->TOWN->FORECAST as $f);
echo
}
[/php]
Не знаю этот цикл, а в моём скрипте XML-данные выводятся именно так.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 22.3.2010, 22:18; Ответить: alexdrob
Сообщение #7


[PHP]$f = each($xml->REPORT->TOWN->FORECAST);[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
happyhand
happyhand
Topic Starter сообщение 23.3.2010, 0:06; Ответить: happyhand
Сообщение #8


Вот результат.
Так не должно быть.
Вот код:
[php]<?
$weekday = array('','воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
$tod = array('ночь','утро','день','вечер');
$cloudiness = array("<img title='Ясно' src='img/yasno-big.jpg' width='80px'>","<img title='Малооблачно' src='img/malooblachno-big.jpg' width='80px'>","<img title='Облачно' src='img/oblachno-big.jpg' width='80px'>","<img title='Пасмурно' src='img/pasmurno-big.jpg' width='80px'>");
$precipitation = array(4=>'дождь', 5=>'ливень', 6=>'снег', 7=>'снег', 8=>'гроза', 9=>'нет данных', 10=>'без осадков');
$xmlstr = '';
$fp = fopen($source, 'r');
if ( $fp ) {
while (!feof($fp)) $xmlstr.= fread($fp, 8192);
$xml = new SimpleXMLElement($xmlstr);
// echo '<pre>'; var_dump($xml->REPORT); echo '</pre>';
$town = $xml->REPORT->TOWN[0];
for($i=0;$i<4;$i++){
$f = each($xml->REPORT->TOWN->FORECAST);

echo
"<table border='1'><tr><td valign='top' rowspan='2'><span class='text5'>".$f['day'].'.'.$f['month']."<br> <span class='text9'>".
$weekday[intval($f['weekday'])].'<br>'.
$tod[intval($f['tod'])].': '."</td><td align='center' valign='top' rowspan='2' width='40px'>".
$cloudiness[intval($f->PHENOMENA['cloudiness'])]."<span class='text6'>".
$precipitation[intval($f->PHENOMENA['precipitation'])]."</span></td><td class='td15'>".
"<span class='text7'>".$f->TEMPERATURE['min']."°..<span class='text7'>".$f->TEMPERATURE['max']."°</td></tr><tr><td class='td15'><span class='text8'>"
.$f->PRESSURE['min'].'-'.$f->PRESSURE['max']."<span class='text10'> мм.рт.ст., <span class='text8'><br>".
$f->WIND['min'].'-'.$f->WIND['max']."<span class='text10'> м.с. </span></td></tr></table>";
$f->RELWET['min'].'-'.$f->RELWET['max'].'<br>';
}

}
?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 23.3.2010, 0:08; Ответить: alexdrob
Сообщение #9


а что там не так?)

а в коде попробуйте так
[PHP]
$ar = $xml->REPORT->TOWN->FORECAST;
for($i=0;$i<4;$i++){
$f = each($ar);
echo $f;
} [/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 23.3.2010, 1:55; Ответить: ZhukV
Сообщение #10


Я то понял что это скрипт погоды, но вот не понял толком вопрос!!!
Ну если уж понял, то наверное у тя проблемка с парсингом xml!
Если нужно, могу подогнать скрипт погоды. Пример есть вот здесь: http://freeboard.km.ua/ справа.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как в пушсетках покупают по 100-200 тысяч кликов за день?
2 Boymaster 695 Вчера, 17:52
автор: Boymaster
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19861 23.4.2024, 13:52
автор: Vmir
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
20 uahomka 3472 23.4.2024, 11:54
автор: Skyworker
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
30 freeax 5040 20.4.2024, 16:49
автор: Liudmila
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
13 Boymaster 2036 20.4.2024, 15:06
автор: Boymaster


 



RSS Текстовая версия Сейчас: 25.4.2024, 11:05
Дизайн