<?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) "Челлендж #МояСемья_Сквозьгода. Семьям предлагается реконструровать"
} */
$result = [];
foreach ($arr as [$name, $price]) {
$result[$name] = [
'name' => $name,
'totalPrice' => ($result[$name]['totalPrice'] ?? 0) + $price,
'count' => ($result[$name]['count'] ?? 0) + 1
];
}
$result = array_values($result);
/*
array(2) {
[0] => array(3) {
["name"] => string(8) "iphone 0"
["totalPrice"] => int(156000)
["count"] => int(4)
}
[1] => array(3) {
["name"] => string(7) "macbook"
["totalPrice"] => int(300000)
["count"] => int(1)
}
}
*/