public static function arrayToJson($value) { $jsonValue = ''; foreach ($value as $key => $value) { if (is_object($value)) { $jsonValue .= self::withUnQuotedPattern($key, $value); } elseif (is_array($value)) { $value = array_keys($value) === range(0, count($value) - 1) ? json_encode($value) : self::arrayToJson($value); $jsonValue .= self::withUnQuotedPattern($key, $value); } elseif (is_bool($value)) { $jsonValue .= self::withUnQuotedPattern($key, Javascript::booleanValue($value)); } elseif (is_numeric($value)) { $jsonValue .= self::withUnQuotedPattern($key, $value); } else { $jsonValue .= self::withQuotedPattern($key, $value); } $jsonValue .= Javascript::ARGUMENT_SEPARATOR; } return Javascript::cleanSintax(sprintf(self::$PATTERN, $jsonValue)); }