Skip to content

Instantly share code, notes, and snippets.

@Miri92
Created June 22, 2018 09:35
Show Gist options
  • Save Miri92/baab6aea8351450b58ced77cca22d8ef to your computer and use it in GitHub Desktop.
Save Miri92/baab6aea8351450b58ced77cca22d8ef to your computer and use it in GitHub Desktop.
merge all sub level arrays into one level
<?php
class MenuController extends Controller
{
public function parseJsonArray($jsonArray, $parentID = 0) {
$return = array();
foreach ($jsonArray as $subArray) {
$returnSubSubArray = array();
if (isset($subArray->children)) {
$returnSubSubArray = $this->parseJsonArray($subArray->children, $subArray->id);
}
$return[] = array('id' => $subArray->id, 'parentID' => $parentID);
$return = array_merge($return, $returnSubSubArray);
}
return $return;
}
public function index()
{
$json = "[{\"id\":8,\"name\":\"name\",\"children\":[{\"id\":7,\"name\":\"name\",\"children\":[{\"id\":6,\"name\":\"name6\"},{\"id\":5,\"name\":\"name5\"}]}]},{\"id\":4,\"name\":\"name4\"},{\"id\":3,\"name\":\"name3\"},{\"id\":2,\"name\":\"name\"},{\"id\":1,\"name\":\"name\"}]";
$json = json_decode($json);
$readbleArray = $this->parseJsonArray($json);
print_r($readbleArray);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment