- var_dump: documentation ( source)
- is_numeric: documentation ( source)
- array_walk_recursive: documentation ( source)
<?php
$array = ["arr"=>["0", "1", "2"], "integer_value"=>"3", "float_value"=>"-0.5"];
array_walk_recursive($array, function(&$value, $key)
{
if(is_numeric($value))
{
$value = (string)((int)$value)==$value
?(int)$value
:(double)$value;
}
});
var_dump($array);