Теперь у меня есть такой код json:
{"1":
{
"text":"e1",
"children":
{
"1":
{
"text":"e1_site1",
"children":
{"1":"e1_site1_salarie1_nom"}
},
"3":
{
"text":"e1_site2",
"children":
{
"3":"e1_site2_sa1",
"4":"e1_site2_sa2"
}
}
}
},
"2":
{
"text":"e2",
"children":
{
"2":
{
"text":"e2_site2",
"children":
{
"2":"e2_site2_salarie2_nom"
}
}
}
}
}
И я хочу, чтобы это было:
[
{
"text":"e1",
"children":
[
{
"text":"e1_site1",
"children":
[
{
"text":"e1_site1_salarie1_nom"
}
],
"text":
{
"text":"e1_site2",
"children":
[
{
"text":"e1_site2_sa1"
},
{
"text":"e1_site2_sa2"
}
]
}
],
"text":
{
"text":"e2",
"children":
[
{
"text":"e2_site2",
"children":
[
{
"text":"e2_site2_salarie2_nom"
}
]
}
]
}
То, что я сделал прямо сейчас, не завершено и не закончено:
$json = json_encode($entreprise);
$mode = array("/{\"[0-9]\":{\"text\"/", "/children\":{\"[0-9]\"/","/,\"[0-9]\":{\"/", "/,\"[0-9]\":\"/","(}})");
$replacement = array("[{\"text\"","children\":[{\"text\"",",\"text\":{\"",",\"text\":\"","}]");
$json = preg_replace($mode, $replacement, $json);
dump($json);
И текущий результат:
[
{
"text":"e1",
"children":
[
{
"text":"e1_site1",
"children":
[
{
"text":"e1_site1_salarie1_nom"
}
],
"text":
{
"text":"e1_site2",
"children":
[
{
"text":"e1_site2_sa1",
"text":"e1_site2_sa2"
}
]
}
],
"text":
{
"text":"e2",
"children":
[
{
"text":"e2_site2",
"children":
[
{
"text":"e2_site2_salarie2_nom"
}
]
}
]
}
Знаете ли вы, как добиться идеального вывода с помощью регулярного выражения?
Любые идеи или предложения будут оценены !! Заранее спасибо. ;)
Edit:
Вывод был изменен в соответствии с рекомендацией soulmerge. Это так:
[
{
"text":"e1",
"children":
{
"1":
{
"text":"e1_site1",
"children":
{
"1":"e1_site1_salarie1_nom"
}
},
"3":
{
"text":"e1_site2",
"children":
{
"3":"e1_site2_sa1",
"4":"e1_site2_sa2"
}
}
}
},
{
"text":"e2",
"children":
{
"2":
{
"text":"e2_site2",
"children":
{
"2":"e2_site2_salarie2_nom"
}
}
}
}
]
Но мне все еще предстоит долгий путь к моему идеальному результату.
Кто-нибудь знает, как это сделать?