예제 #1
0
 private function namedCompositeToArray(DataTree $tree)
 {
     $result = [];
     $msgName = $tree->getName();
     $result[$msgName] = [];
     foreach ($tree->getChildren() as $child) {
         $childName = $child->getName();
         if (array_key_exists($childName, $result[$msgName])) {
             $nodeToMove = $result[$msgName][$childName];
             $result[$msgName][$childName] = [];
             $result[$msgName][$childName][] = $nodeToMove;
             $leafContent = $this->toArray($child);
             $result[$msgName][$childName][] = $leafContent[$childName];
         } else {
             $result[$msgName] = array_merge($result[$msgName], $this->toArray($child));
         }
     }
     return $result;
 }