Cómo iterar un objeto PHP con claves dinámicas (nombres de propiedades)
Hola a todos. Soy nuevo en PHP y me encontré con un problema al trabajar con datos JSON. Después de decodificar JSON con `json_decode()` obtengo un objeto stdClass cuyas propiedades (claves) son desconocidas de antemano. Por ejemplo, recibo datos de productos desde una API externa, y los nombres de los campos pueden cambiar (precio, cantidad, descripción — pero la composición exacta de los campos es desconocida). Necesito recorrer todas las propiedades de este objeto y mostrarlas en pantalla.
Aquí hay un ejemplo de código que no me funciona:
```php
$json = '{"item1": {"name": "Товар А", "price": 150}, "item2": {"name": "Товар Б", "price": 250}}';
$data = json_decode($json);
// Intento iterar como array — error
foreach ($data as $key => $value) {
echo $key . ': ' . $value . '
'; } ``` Este código produce un error: "Invalid argument supplied for foreach()". Entiendo que `$data` es un objeto, no un array. Pero ¿cómo puedo iterar todas sus propiedades si no conozco sus nombres? Intenté usar `$data->$key` — tampoco funcionó.
'; } ``` Este código produce un error: "Invalid argument supplied for foreach()". Entiendo que `$data` es un objeto, no un array. Pero ¿cómo puedo iterar todas sus propiedades si no conozco sus nombres? Intenté usar `$data->$key` — tampoco funcionó.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Java inner class y static nested class: guía completa para principiantes
Singleton global en Rust: rompiendo estereotipos con código
Caché en C++: Redis, Memcached y soluciones integradas: guía completa
CQRS y Event Sourcing en JavaScript: arquitectura para sistemas complejos