# Drupal editor configuration normalization
# @see http://editorconfig.org/
# This is the top-most .editorconfig file; do not search in parent directories.
root = true
# All files.
[*]
end_of_line = LF
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[composer.json]
indent_size = 4
function tree ($data = [], $parent = 'parent', $child = 'child') {
if (!empty($data)) {
$tree = [];
foreach($data as $id => &$row) {
if (empty($row[$parent])) {
$tree[$id] = &$row;
} else {
$data[$row[$parent]][$child][$id] = &$row;
}
}
return $tree;
}
}
$data = [
1 => [
'name' => 1,
'parent' => 0
],
2 => [
'name' => 2,
'parent' => 1
],
3 => [
'name' => 3,
'parent' => 1
],
4 => [
'name' => 4,
'parent' => 3
],
5 => [
'name' => 5,
'parent' => 4
]
];
print_r(tree($data));
function recursion (array $data = []) {
foreach ($data as $row) {
if (isset($row['id'])) {
echo '<div>' . $row['name'] . '</div>';
echo '<div class="child">';
if (isset($row['child'])) {
recursion($row['child']);
}
echo '</div><br>';
}
}
}
recursion(tree($data));
<div>один</div>
<div class="child">
<div>два</div>
<div class="child"></div>
</div>
<div>три</div>
<div class="child">
<div>четыре</div>
<div class="child">
<div>пять</div>
<div class="child"></div>
</div>
services:
video.index_controller:
class: Drupal\video\Controller\VideoIndexController
arguments: ['@video.model']
video.model:
class: Drupal\video\Model\VideoModel
arguments: ['@database']
video.id:
path: '/video/{id}'
defaults:
_controller: 'Drupal\video\Controller\VideoIndexController::video'
requirements:
_permission: 'access content'
video.id:
path: '/video/{id}'
defaults:
_controller: 'video.index_controller:video'
requirements:
_permission: 'access content'