В БД Postgresql есть таблица каталог
Мой запрос выдает мне вот такой результат
WITH RECURSIVE r as (
SELECT id,pid,description
from razdel
union
select razdel.id,razdel.pid,razdel.description
from razdel
join r on razdel.pid = r.id
)
select * from r;
Моя цель на выходе получить следующий результат.
Пока что написал такой скритп на PHP
<?php
$resultArr = pg_fetch_all($data);
function Tree($array,$sub=null)
{
foreach($array as $v)
{
if($v['pid']==$sub){
echo " ".$v['description'] . "\n";
foreach($array as $twov){
if(($v['id']==$twov['pid'])){
echo " ".$twov['description']. "\n";
Tree($array,$twov['id']);
}
}
}
}
}
echo "<pre>";
Tree($resultArr);
Он возвышает следующее.
А дальше даже не пойму что и как сделать. Жду ваших наставлений. С уважением emrdev/
Попробуйте так:
function Tree($array, $pid = 0) {
if ($pid) {
$haystack = array_filter($array, function ($item) use ($pid) {
return (int)$item['pid'] === $pid;
});
}
else {
$haystack = $array;
}
if ($haystack) {
echo '<div style="padding-left:15px;">';
}
foreach ($haystack as $item) {
if ((int)$item['pid'] === $pid) {
echo $item['description'];
Tree($array, (int)$item['id']);
}
}
if ($haystack) {
echo '</div>';
}
};
Tree($resultArr, 0);
Я не совсем уверен какой тип данных приходит к Вам в id и pid, поэтому на всякий выполнил приведение.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть 2 приложенияОба приложения имеют определение интерфейса ICollback
Существует ли в Java регулярное выражение нажатие клавиши Enter как в python /r? Enter нужно отправить в консоль ssh, после выполнения команды
Есть задачаМетод принимает строку (длинную) и должен распечатать ее построчно так, чтобы длина каждой выводимой строки была не больше 13 символов...
Имеется listview который выводит n строк, нужно как-то сделать так, чтобы при прокрутке этого списка, первая его строка всегда была на виду, те