> Faqs > Cómo convertir un array asociativo de PHP en un objeto

Cómo convertir un array asociativo de PHP en un objeto

Quisiera saber cuál es la forma más directa en PHP de obtener un objeto a partir de un array asociativo.

Es decir, tengo un array asociativo en PHP como este:

$mi_array_asociativo = [
  'elemento' => 'valor',
  'otro_elemento' => 'Otro valor',
  'cualquier_cosa' => true,
];

Quisiera convertirlo a un objeto común, al que pueda acceder mediante el operador de objeto de PHP.

$mi_objeto->elemento

Respuestas

Esta operación la podrías realizar de diversos modos. Básicamente recorriendo tu array asociativo y creando un objeto al que vas incorporando sucesivamente como propiedades cada uno de los elementos del array.

Pero hay una manera muy directa y muy limpia de convertir un array asociativo a un objeto de PHP, usando las funciones de JSON de PHP.

Básicamente lo harías con este código PHP:

$mi_objeto = json_decode(json_encode($mi_array_asociativo));
Miguel Angel
3140 140 209 17
Desde luego es una solución sencilla pero efectiva. Gracias! Funciona! Voy a dar una función para que sea reutilizable

Para que pueda ser reutilizable este código voy a dejar una función, por si a alguien le sirve.

Esta función recibe el array asociativo como entrada y devuelve un objeto en PHP

<?php

function convertirArrayAObjeto($array) {
    // Convertimos el array a JSON y luego de JSON a objeto
    return json_decode(json_encode($array));
}

// Uso de la función
$arrayAsociativo = array(
    "objkey" => "val",
    "objkey2" => "valor2",
    "subobjkey3" => array(
        "subobjkey" => "subval",
        "subobjkey2" => "subvalor2"
    )
);

$objeto = convertirArrayAObjeto($arrayAsociativo);
?>
Victor
259 7 18 11