Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
OpenGoodwin
7 / 7 / 3
Регистрация: 15.01.2014
Сообщений: 458
1

Дублируется вывод foreach

12.10.2016, 04:59. Просмотров 486. Ответов 1
Метки нет (Все метки)

Есть функция:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function findPopularDirection() {
    global $geo;
    $currency = getCurrencyCode($geo['country_name']);
    $origin = $geo['iata'];
    $url = "http://api.travelpayouts.com/v1/city-directions?origin=" . $origin . "&currency=" . $currency;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Access-Token: -")); // токен доступа стёр в целях безопасности
    $response = curl_exec($ch);
    curl_close($ch);
    $popular = json_decode($response, true);
    return $popular;
}
Функция получает json-строку, декодирует её в многомерный массив и возвращает массив в качестве строки. Затем, я пытаюсь перебирать заглавные ключи(поскольку они всегда разные) и выводить их следующим образом:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<div class="cards row">
                    <?php 
                    if( $popular['success'] ) {
                        $i = 0;
                        foreach($popular['data'] as $type => $item) {
                            if(++$i == 3) break;
                            foreach( $item as $key => $val ) { ?>
                    <div class="col-sm-4 col-md-4 col-xs-12">
                        <div class="card">
                            <div class="card-image">
                                <img src="http://www.makintour.com/abton/spaw2/uploads/images/1209_1.jpg" alt="test"></img>
                                <span class="city-name"><?php echo iataToCity($item['destination']);?></span>
                            </div>
                            <div class="card-content">      
                                <div class="flight-main-info">
                                    <div class="origin">
                                        <h6><?php echo iataToCity($item['origin']);?><span><?php echo $item['origin']; ?></span></h6>
                                    </div>
                                    <div class="destination">
                                        <h6><?php echo iataToCity($item['destination']);?><span><?php echo $item['destination']; ?></span></h6>
                                    </div>
                                </div>
                                <div class="flight-details">
                                    <div class="detail">
                                        <span class="name">Кол-во пересадок</span><span class="info"><?php echo $item['transfers']; ?></span>
                                    </div>
                                    <div class="detail">
                                        <span class="name">Цена</span><span class="info"><?php echo $item['price']; ?></span>
                                    </div>
                                    <div class="airline-logo">
                                        <img src="img/airline-logo/<?php echo $item['airline']; ?>.png" alt="" title="" />
                                    </div>
                                </div>
                            </div>
                            <div class="card-action">
                                <div class="action-buttons">
                                    <a href="#">Подробнее</a>
                                </div>
                            </div>
                        </div>
                    </div>
                    <?php   }
                        }
                    } else { 
                    echo '<h4 style="color: #9e9e9e;">Упс, произошла ошибка :(</h4>';
                    } ?>
                </div>
Не знаю почему, но foreach в данном случае сработал странно. Он должен выводить один массив и переходить к следующему, но вместо этого он выводит 9 раз один и тот же массив, и только потом переходит к следующему. И следующий тоже выводит 9 раз. Где у меня ошибка?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 04:59
Ответы с готовыми решениями:

foreach ограничение на вывод
Как через цикл foreach вывести не весь массив а например с 1 по 2 элемент? Если например имеем...

Вывод вложенного массива foreach
Добрый вечер пытаюсь сделать вывод вложенного массива, подскажите где ошибка &lt;?php $usersInd...

Цикл foreach и вывод данных
Есть скрипт, который выводит данные из БД в следующем виде: id название цена 1 карандаш 100 2...

вывод из foreach в зависимости от url
Здравствуйте, есть вот такой код function show_menu_pin(){ $catalog = 10; $answer =...

Вывод карусели bootstrap в цикле foreach
Все здравствуйте. Столкнулся с проблемой вывода бутстраповской карусели в цикле foreach, если...

1
MadHatter
129 / 125 / 46
Регистрация: 15.06.2013
Сообщений: 873
12.10.2016, 15:59 2
Foreach не может работать странно. То что вы ему сказали делать, то он и делает. А что выводит
PHP
1
var_dump($popular['data']);
?
А зачем у вас
PHP
1
foreach( $item as $key => $val )
, если вы нигде не используете переменную $val?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 15:59

Неправильно работает вывод массива через foreach
Есть массив $childResult (print_r): Array ( =&gt; Array ( =&gt; 4 =&gt; Steam =&gt; 0 =&gt; =&gt; 1 ) =&gt;...

Цикл: Вывод информации с помощью цикла foreach
Привет, есть цикл foreach из массива парсятся фото большого и мальнького размера $photos_litle ...

Вывод выбранных чекбоксов в таблице, которая внутри foreach
Добрый день, друзья! Прошу помочь в написании кода. В приведенном примере checked вставится 3 раза...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru