Зацикливается PHP код

126
25 августа 2019, 22:40
$clients_id = $_REQUEST['source_record'];
function getChild($pid){
        $sql = "SELECT * FROM tasks WHERE tasks.deleted = 0 AND tasks.parent_id = '".$pid."'";
        return $sql;
}
function getDB($sql){
    global $db;
    $result = $db->query($sql);
    $tempArr = [];
    while($row = $db->fetchByAssoc($result)){
        $tempArr[$row['id']] = [];
    }
    return $tempArr;
}
function createArray($sid,$arr, &$tempArray){
        $sql = getChild($sid);
        $arr[$sid] = getDB($sql);
        array_push($tempArray, $sid);
        foreach ($arr[$sid] as $key => $value) {
            //Проверка ID а повторения во избежания зацикливания
            if(!in_array($key, $tempArray)){
                $arr[$sid] = createArray($key,$arr[$sid], $tempArray);
            }
        }
        return $arr;
}
//Временный массив для хранения Id и проверки на повторения
$tempArray = [];
$listId = [];
$listId = createArray($clients_id, $listId, $tempArray);

Есть ID записи $clients_id Пустой массив который должен запонлится ID-шниками вложенных записей $listId

По идее на проверке if(!in_array($key, $tempArray)){} Он должен сверить текущий ID с уже записанными и если такой есть то не выполнять функцию но он всеравно зависает

READ ALSO
Как получить время 5, 10, 20 или 30 минут назад?

Как получить время 5, 10, 20 или 30 минут назад?

Не могу найти в доках и гугле - как получить время 5, 10, 20 или 30 минут назад?

98
JWT токен - TOKEN_EXPIRED при 2 рефреше

JWT токен - TOKEN_EXPIRED при 2 рефреше

Всем приветПишу API на Laravel, использую пакет tymon/jwt-auth

127
Не могу поднять проект на ZendFramework

Не могу поднять проект на ZendFramework

Не могу поднять проект после "смерти сервака" Вылетает ошибка через WEB (You don't have permission to access /php-bin/php/indexphp on this server

104
динамическое создание карточки modx

динамическое создание карточки modx

есть товары которые находятся в db migx там же и заполняются

136