تبدیل خروجی json

  • نویسنده موضوع Omiid
  • تاریخ شروع

Omiid

تازه وارد
سلام

من دارم روی یه کدی کار میکنم که یه آدرس رو میگیره و به صورت آرایه های تو در تو خروجی بده

چیزی که فعلا بهش رسیدم اینه

$strings='a/b/c/d.docx';

$items = explode('/', $strings);
$num = count($items)-1;

$root= array();
$cur = &$root;
$temp = array();
$v='';

foreach($items as $keys => $value) {

$v = $v.$value;
$temp = array( "name" => $value, "path"=>$v, "type" => "folder", "items" => "");
if($keys == $num){
$temp = array( "name" => $value, "path"=>$v, "type" => "file", "size" => "20");
}
$v= $v.'/';

if($keys==0) {
$cur = $temp;
}
else
{
$cur['items'] = $temp;
$cur = &$cur['items'];
}
}
echo json_encode($root,JSON_UNESCAPED_SLASHES);


خروجی این کد الان به این شکله:

{"name":"a","path":"a","type":"folder","items":{"name":"b","path":"a/b","type":"folder","items":{"name":"c","path":"a/b/c","type":"folder","items":{"name":"d.docx","path":"a/b/c/d.docx","type":"file","size":"20"}}}}


ولی میخوام به این صورت در بیاد:

{"name":"a","path":"a","type":"folder","items":[{"name":"b","path":"a/b","type":"folder","items":[{"name":"c","path":"a/b/c","type":"folder","items":[{"name":"d.docx","path":"a/b/c/d.docx","type":"file","size":"20"}]}]}]}


در اصل یعنی آرایه به صورت non associtive در بیاد.

ممنون میشم بتونید کمک کنید 

 
بالا