 
  
   
  
  $array = [
    ["TITLE" => "Тест 1", "LEVEL" => 1,],
    ["TITLE" => "Тест 2", "LEVEL" => 2,],
    ["TITLE" => "Тест 3", "LEVEL" => 2,],
    ["TITLE" => "Тест 4", "LEVEL" => 3,],
    ["TITLE" => "Тест 5", "LEVEL" => 2,],
    ["TITLE" => "Тест 6", "LEVEL" => 3,],
];
const TITLE = 'TITLE';
const LEVEL = 'LEVEL';
const CHILDREN = 'CHILDREN';
$result = [];
$refs = [];
foreach ($array as $item) {
    $level = $item[LEVEL];
    if ($level === 1) {
        $result[] = $item;
        $refs = [&$result[count($result) - 1]];
    } else {
        for ($i = count($refs) - 1; $i >= 0; $i--) {
            $parent = &$refs[$i];
            if ($parent[LEVEL] === $level - 1) {
                if (!isset($parent[CHILDREN])) {
                    $parent[CHILDREN] = [];
                }
                $parent[CHILDREN][] = $item;
                array_splice($refs, $i + 1);
                $refs[] = &$parent[CHILDREN][count($parent[CHILDREN]) - 1];
                unset($parent);
                break;
            } else {
                unset($parent);
                continue;
            }
        }
    }
}
echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);[
  {
      "TITLE": "Тест 1",
      "LEVEL": 1,
      "CHILDREN": [
          {
              "TITLE": "Тест 2",
              "LEVEL": 2
          },
          {
              "TITLE": "Тест 3",
              "LEVEL": 2,
              "CHILDREN": [
                  {
                      "TITLE": "Тест 4",
                      "LEVEL": 3
                  }
              ]
          },
          {
              "TITLE": "Тест 5",
              "LEVEL": 2,
              "CHILDREN": [
                  {
                      "TITLE": "Тест 6",
                      "LEVEL": 3
                  }
              ]
          }
      ]
  }
] 
  
  1) Возможность подключаться по ssh, ftp с любого ПК в одной локальной сети.
2) Возможность сделать копию текущего состояния и развернуть на другом ПК со всеми файлами БД и.т.д. (Не в текущей локальной сети)
3) Возможность работать с nginx, apache, npm, php, python, mysql (это если выбрать докер, то чтобы все это было в одном контейнере)
4) Быстрое обновление до последних версий вышеуказанных модулей. (Как у докера. Указал в конфиге версии и собрал контейнер по новой)
<?php
$search = "Диагональ 17,6";
echo preg_replace(
		'/(\d),(\d)/', '$1.$2', 
		$search
); //Диагональ 17.6location ~ ^/(test/[^/]+)/test2/$ {
    return 301 /$1/;
}rewrite ^/(test/[^/]+)/test2/$  /$1/ permanent;      
Я отправляю post запросом дату в формате: Thu Oct 01 2020 00:00:00 GMT+0400 (+04)
Вывожу $_POST приходит: 2020-09-30T20:00:00.000Z
Форматы меня устраивают, но проблема в том, что всегда вычитается 1 день на сервере.
select 
 a.userId,
 sum(k1.val * k2.val * k3.val) points 
from aciv a
 join users on u.userId = a.userId  -- эта строка вроде как и не нужна, если нут других ограничений по users
 join kof k1 on a.kof1 = k1.id
 join kof k2 on a.kof2 = k2.id
 join kof k3 on a.kof3 = k3.id
group by a.userId
order by 2 desc
limit 5if (!$request->ajax()) {
 abort(404);
}
return $next($request);