Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
1

Рекурсия: после отработки вложенной функции foreach перестает делать предыдущий обход

02.08.2016, 11:05. Показов 557. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Делаю иерархию БД.
Проблема в следующем: после отработки вложенной функции foreach перестает делать предыдущий обход, в итоге выполнение заканчивается на последней вложенности первого уровня
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?php
 
    $n=0;
    function data($parent_id, $robots2, $n, $type_id){
        $n++;
        foreach ($robots2 as $robot):
            if ($robot->parent_id==$parent_id):?>
                    <p style = "margin-left:<?php echo 1+$n;?>%"><?php echo $robot->name;?></p>
                    <?php
                            data($robot->id, $robots2,$n, $type_id);
                    ?> 
            <?php endif;
        endforeach;
        $n--;
    }
    ?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2016, 11:05
Ответы с готовыми решениями:

Get Axis перестаёт работать, после отработки столкновения в коллайдером
Снимаю данные для угла поворота функцией GetAxis: turnAngle = Input.GetAxis(&quot;Horizontal&quot;) *...

Foreach перестаёт работать после первого выполнения
Написал скрипт, который обновляет записи данных при запуске cron, foreach($result as $p){...

Вывод мусора после отработки функции
#include &lt;iostream&gt; #include &lt;conio.h&gt; void Binary(char *&amp;,int); using namespace std; int...

Обнуление формы, после отработки CallBack функции Javascript
Уважаемые, приветствую! Я новичёк в Web программировании, поэтому прошу отнестись с пониманием... ...

2
Hello Kitty
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
02.08.2016, 12:09 2
что изначально в $robots2?
функция вполне рабочая(вроде)
0
0 / 0 / 2
Регистрация: 10.02.2013
Сообщений: 66
02.08.2016, 12:53  [ТС] 3
Объект со значениями БД (phalcon)
PHP
1
$robots2 = Data::find();
foreach на каждой вложенности начинает перебор с нуля и закончив его на последней вложенности не продолжает уровнем ниже (т.е. закончив на последнем 500 элементе, не продолжает на уровне ниже с 100-го элемента, а заканчивает перебор)

Добавлено через 35 минут
Дело не в цикле было, а в наполнении объекта. Вопрос закрыт.
0
02.08.2016, 12:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2016, 12:53
Помогаю со студенческими работами здесь

Как в foreach выбрать предыдущий элемент?
foreach($arFields as $key =&gt; $value){ if($_SESSION == $value) { ...

Css перестает работать после выполнения функции
Здравствуйте. Встала у меня такая проблемка. Есть у меня такой кусочек css .buttons {...

После вызова рекурсивной функции программа перестаёт работать
int mat,size,x=1,y, a=0, b=1; void mtt(int mat, int a, int b); int main(){ cin&gt;&gt;size;...

foreach и коллекция, обход
Здравствуйте. Есть массив списков, в нем необходимо найти объект b и удалить его. Как это лучше...

Обход по элементам массива с помощью foreach
есть цикл, который заполняет файл значениями. foreach($deal as $key){ $v2 = ''; ...

Обход массива (foreach) с определенного значения ?
Всем доброго времени суток! Не нашел ответ на вопрос (срочно нужно было реализовать функционал,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru