function my_recurse($id,$tree=array())
{
$hols = array();
$overall = array();
$asd = $this->db->get_where('story', array('story_id'=>$id))->row_array();
if(isset($asd['story_id'])){
$preds = explode(',',$asd['story_pred']);
if($preds[0] != 0)
{
$hols[] = $preds[0];
$hols = array_merge($tree, $hols);
$this->my_recurse($preds[0],$hols);
}
}
print_r($hols);
}
сказать, например, у меня есть это деревоКак я могу исправить вывод этой рекурсивной функции
story1 NULL story2 story1 Story3 story2 story4 Story3
и когда я вхожу story4 как мой идентификатор в функции он всегда возвращает story3, а не story1, story2 и story3. не знаю, почему он меняет результат после рекурсии. любые предложения были бы оценены
Бит трудно понять. Короткие имена переменных делают код трудным для чтения, если вы незнакомы. Кроме того, что должно быть достигнуто? –
«отменяет» выход? –
да .. он меняет выходной результат .. скажем, например, дерево, как этот story1-> story2-> story3-> story4, вызывающий my_recurse (story4). Я ожидал, что результатом будет массив (story1) для первого массива рекурсивных событий (story1 , story2) для 2-го и массива (story1, story2, story3) для последнего, но когда я печатаю после каждой рекурсии, это похоже на этот массив (story1, story2, story3), затем массив (story2, story3) и массив (story3) поэтому, когда я возвращаю hols, он всегда возвращает story3 – user1073113