function get_data_dynamic_link($parent){
$var = array();
$db_query = "select * from ".DB_PREF."dynamic
where id_parent = ".$parent." ";
list($kolvo, $data_prop) = obr_db_query_select_one_assoc($db_query);
if($kolvo){
$var[] = $data_prop['id'];
$var[] = get_data_dynamic_link($data_prop['id_properties']);
}
return $var;
}
Здравствуйте. Подскажите, почему данный код возвращает массив с наращиванием вложенностей
array(2) {
[0]=> string(1) "6"
[1]=> array(2) {
[0]=> string(1) "7"
[1]=> array(0) {
}
}
}
когда мне нужно, чтобы было так
array(2) {
[0]=> string(1) "6"
[1]=> string(1) "7"
}
Что нужно исправить ? спасибо
Без тестовых данных проверить сложно,
function get_data_dynamic_link($parent){
static $var = [];
$db_query = "select * from ".DB_PREF."dynamic
where id_parent = ".$parent." ";
list($kolvo, $data_prop) = obr_db_query_select_one_assoc($db_query);
if($kolvo){
$var[] = $data_prop['id'];
get_data_dynamic_link($data_prop['id_properties']);
}
return $var;
}
Определите массив результата как статическую переменную, тогда она будет в единственном экземпляре доступна среди всех вызовов функции, в т.ч. рекурсивных. А в конце не добавляйте результат вызовы рекурсии в сам массив, а просто вызывайте метод.
Есть несколько вариантов решения, через ссылки, статические переменные или передачей исходного массива в функцию, мне кажется для начинающего 3-й вариант будет самый понятный:
function get_data_dynamic_link($parent, $array = array()){
$db_query = "select * from ".DB_PREF."dynamic
where id_parent = ".$parent." ";
list($kolvo, $data_prop) = obr_db_query_select_one_assoc($db_query);
if ($kolvo){
array_push($array, $data_prop['id']);
$array = get_data_dynamic_link($data_prop['id_properties'], $array);
}
return $array;
}
Мы получаем массив и добавляем в него элемент, если массив не передаем, создается новый
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости