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.