예제 #1
0
 public static function dataOrder($data, $schema)
 {
     if (is_object($data) && ($properties = JsonUtils::get($schema, 'properties'))) {
         $result = array();
         foreach ($properties as $key => $value) {
             if (isset($data->{$key})) {
                 $result[$key] = static::dataOrder($data->{$key}, $properties->{$key});
                 unset($data->{$key});
             }
         }
         $result = (object) array_merge($result, (array) $data);
     } elseif (is_array($data) && ($items = JsonUtils::get($schema, 'items'))) {
         $objSchema = is_object($schema->items) ? $schema->items : null;
         foreach ($data as $item) {
             $itemSchema = $objSchema ?: (next($schema->items) ?: null);
             $result[] = static::dataOrder($item, $itemSchema);
         }
     } else {
         $result = $data;
     }
     return $result;
 }