3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = json_decode('{"1":{"id":"1","source_name":"kk56ca1d0f2378f","company_id":"1","lft":"1","rgt":"18","parent_id":"0","children":{"2":{"id":"2","source_name":"kk56ca1d17f3f63","company_id":"1","lft":"2","rgt":"3","parent_id":"1","children":[]},"3":{"id":"3","source_name":"kk56ca1d1ebe975","company_id":"1","lft":"4","rgt":"13","parent_id":"1","children":{"6":{"id":"6","source_name":"kk56ca1fc882ac0","company_id":"1","lft":"5","rgt":"10","parent_id":"3","children":[]}}}}}}',1); function convert_array( $array ) { $retval = array(); foreach( $array as $row ) { $child = array(); $child['id'] = $row['id']; $child['text'] = $row['source_name']; $child['parent_id'] = $row['parent_id']; if( count( $row['children'] ) ) { $child['nodes'] = convert_array( $row['children'] ); } else { $child['nodes'] = array(); } $retval[] = $child; } return $retval; } $result = convert_array( $array ); print_r( $result );

preferences:
34.41 ms | 405 KiB | 5 Q