Boas,
Após alguns meses parada, vou tentar devolver vida a esta rubrica, original do Pedro Pinto, mas com uma ideologia diferente.
Nesta rubrica vou falar pouco (à parte desta “primeira”), e vou-vos deixar funções que me são muito úteis no dia-a-dia, que penso que poderão ser também para vocês.
Esta rubrica não será mais destinada a quem quer aprender a programar, porque para aprender a programar têm de pegar e perceber primeiro algoritmia, só depois passar para uma linguagem de programação. Será sim destinada a quem já sabe e consegue programar em PHP e deseja/necessita/é útil ter umas funções e/ou classes (simples ou complexas) “gerais” que se consigam utilizar nos mais diversos projectos.
Todo o código que eu colocar nesta rubrica foi desenvolvido por mim (caso contrário estará explícito no código) e como tal, desde que seja eu o autor, dou autorização para usarem para fins pessoais e comerciais, sem qualquer limitação (com uma referência para mim ficaria obviamente agradecido, mas não é obrigatório).
Converter um Array num Object e vice-versa
Hoje trago-vos duas funções que para mim me foram muito úteis a desenvolver uma classe que mais tarde divulgarei nesta rubrica, para trabalhar com MySQL.
function convertArrayToObject($array)
{
$object = new stdClass();
if (is_array($array) && count($array) > 0)
{
foreach ($array as $name=>$value)
{
$name = strtolower(trim($name));
if (!empty($name))
{
$object->$name = $value;
}
}
}
return $object;
}
function convertObjectToArray($object)
{
$array = array();
if (is_object($object))
{
$array = get_object_vars($object);
}
return $array;
}
?>
Modo de utilização:
Converter Array $a para Object $o
$a = array ( 'index_0' => 'value_0', 'index_1' => 'value_1' ); $o = convertArrayToObject($a); //-- Agora podem usar o $o desta forma: echo $o->index_0;//-- Imprime 'value_0' ?>
Converter Object $o para Array $a
$o = new stdClass(); $o->index_0 = 'value_0'; $o->index_1 = 'value_1'; $a = convertObjectToArray($o); //-- Agora podem usar o $a desta forma: echo $a['index_0'];//-- Imprime 'value_0' ?>
Qualquer dúvida ou sugestão, estão completamente à vontade.