Esto funciona para yo
if (is_array($array)) {
$obj = new StdClass();
foreach ($array as $key => $val){
$key = str_replace("-","_",$key)
$obj->$key = $val;
}
$array = $obj;
}
asegúrese de que str_replace está allí como '-' no está permitido dentro de los nombres de variables en PHP, así como:
Normas de denominación de variables
* A variable name must start with a letter or an underscore "_"
* A variable name can only contain alpha-numeric characters and underscores (a-z, A-Z, 0-9, and _)
* A variable name should not contain spaces. If a variable name is more than one word, it should be separated with an underscore ($my_string), or with capitalization ($myString)
Por lo tanto, ya que estos están permitidos en las matrices, si cualquiera de ellos viene en la clave $ de la matriz que está convirtiendo, tendrá errores desagradables.
Las mejores respuestas son a menudo las más simples +1 – alex