<?php
function tree($dirName) {
$tree = [];
$dir = opendir($dirName);
while (($entry = readdir($dir)) !== false) {
if ($entry === '.' || $entry === '..') {
continue;
}
$fullName = "{$dirName}\\{$entry}";
if (is_dir($fullName)) {
$tree[] = [
'name' => $entry,
'type' => 'dir',
'entries' => tree($fullName)
];
} else {
$tree[] = [
'name' => $entry,
'type' => 'file'
];
}
}
return $tree;
}
print(json_encode(tree('C:\\test'), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
/* [
{
"name": "dir1",
"type": "dir",
"entries": [
{
"name": "dir2",
"type": "dir",
"entries": [
{
"name": "file5",
"type": "file"
}
]
},
{
"name": "file1",
"type": "file"
},
{
"name": "file3",
"type": "file"
}
]
},
{
"name": "file2",
"type": "file"
}
] */ $json = '{"id":1,"title":"\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0434\u0435\u043d\u044c \u0441\u0435\u043c\u044c\u0438","description":"\u0427\u0435\u043b\u043b\u0435\u043d\u0434\u0436 #\u041c\u043e\u044f\u0421\u0435\u043c\u044c\u044f_\u0421\u043a\u0432\u043e\u0437\u044c\u0433\u043e\u0434\u0430. \u0421\u0435\u043c\u044c\u044f\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0440\u043e\u0432\u0430\u0442\u044c"}';
$data = json_decode($json);
var_dump($data);
/* object(stdClass)#1 (3) {
["id"]=>
int(1)
["title"]=>
string(46) "Международный день семьи"
["description"]=>
string(125) "Челлендж #МояСемья_Сквозьгода. Семьям предлагается реконструровать"
} */ const obj = {
'anyID2' : {name: 'petya', age: 30},
'anyID1' : {name: 'vasya', age: 20},
'anyID3' : {name: 'kirill', age: 40},
};
const newObj = Object
.keys(obj)
.sort((x, y) => obj[x].age - obj[y].age)
.reduce((acc, key) => { acc[key] = obj[key]; return acc; }, {});
console.log(newObj);
/*
Object { anyID1: {…}, anyID2: {…}, anyID3: {…} }
anyID1: Object { name: "vasya", age: 20 }
anyID2: Object { name: "petya", age: 30 }
anyID3: Object { name: "kirill", age: 40 }
*/