PHP – converte arrays mistos e objetos recursivamente

Já obteve dados mistos que continham matrizes e objetos? Este trecho de código irá converter recursivamente esses dados em um único tipo (matriz ou objeto) sem os loops foreach aninhados. Espero que ajude alguém!

Exemplo

<?php
abstract class Util {
public static function object_to_array($d) {
if (is_object($d))
$d
= get_object_vars($d);

return is_array($d) ? array_map(__METHOD__, $d) : $d;
}

public static function array_to_object($d) {
return is_array($d) ? (object) array_map(__METHOD__, $d) : $d;
}
}
?>

Forma processual

<?php
function object_to_array($d) {
if (is_object($d))
$d
= get_object_vars($d);

return is_array($d) ? array_map(__FUNCTION__, $d) : $d;
}

function array_to_object($d) {
return is_array($d) ? (object) array_map(__FUNCTION__, $d) : $d;
}
?>