Pplware

PHP é à quinta-feira – Converter um Array num Object

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.

Exit mobile version