¿Cómo agregar otro objeto con valor en datos?

Algo empieza como:

$data=[{name:"apple"}]

Y quería un resultado como este

$data=[{name:"apple",city:"gotham"}]
0
Baharudin Jx 26 nov. 2021 a las 12:31

2 respuestas

La mejor respuesta

No intente compilar JSON manualmente, cree una estructura de datos PHP que desee y luego use json_encode() para convertirla en una cadena JSON

$d = [(object)['name' => 'apple', 'city' => 'gotham']];

echo json_encode($d);

Resultado

[{"name":"apple","city":"gotham"}]

Si algunos valores ya existen, debe decodificarlos en una estructura de datos PHP y luego agregarlos y convertirlos nuevamente a JSON String

$data='[{"name":"apple"}]';
$d = json_decode($data);
$d[0]->city = 'Gotham';

$data = json_encode($d);

Resultado

[{"name":"apple","city":"Gotham"}]
1
RiggsFolly 26 nov. 2021 a las 12:54
Éste ya declara primero y muestra. [{nombre: "manzana"}]; y ¿cómo agregar algún objeto con valor como el resultado que menciono? [{nombre: "manzana", ciudad: "gotham"}]
 – 
Baharudin Jx
26 nov. 2021 a las 12:44
Gracias lo tengo
 – 
Baharudin Jx
26 nov. 2021 a las 12:56

Debe usar el formato de objeto json: '[{"nombre": "valor"}]' luego use json_decode para convertirlo de cadena a objeto json.

$data = '[{"name":"apple"}]';
$data = json_decode($data);
$data[] = array('city' => 'gotham');
$data = json_encode($data);
echo $data;

Salida:

[{"name":"apple"},{"city":"gotham"}]
0
Alex Yu 26 nov. 2021 a las 12:57