static function parseObj($obj) { $arr = (array) $obj; $newArr = array('name' => "", 'attributes' => array()); foreach ($arr as $key => $value) { $isObj = false; $isArr = false; if (is_object($value)) { $isObj = true; $value = Request::parseObj($value); } else { if (is_array($value)) { $isArr = true; $tempArr = array(); foreach ($value as $obj) { $tempArr[] = Request::parseObj($obj); } $value = $tempArr; } } // Attributes if (substr($key, 0, 1) == "@") { $newArr['attributes'][substr($key, 1)] = $value; } else { if (substr($key, 0, 1) == "#") { $newArr['value'] = $value; } else { $newArr['name'] = $key; if (!$isObj && !$isArr) { $newArr['value'] = $value; } elseif ($isArr) { $newArr = array_merge($newArr, $value); } else { $newArr[] = $value; } } } } return $newArr; }