public static function typeCast($array)
{
$return = [];
foreach ($array as $k => $v) {
if (is_numeric($v)) {
if (is_float($v)) {
$return[$k] = (double) $v;
} else {
$return[$k] = (int) $v;
}
} elseif (is_array($v)) {
$return[$k] = self::typeCast($v);
} else {
$return[$k] = $v;
}
}
return $return;
}