0

Estoy trabajando con una API y necesito crear un array de objetos desde mi código en PHP el array de ejemplo de la API en JSON es así:

{ "create": [
    { "name": "Tag1"},
    {  "name": "Tag2"},
    {  "name": "Tag3"} ] }

Y mi código de PHP es el siguiente:

 $array = array("TAG1", "TAG2", "TAG3");
    $myObj = new stdClass();
    $myObj->name = array();
    for($i=0; $i<count($array); $i++) {
      $myObj->name[$i] =  $array[$i]; }  
    $obj = new stdClass();
    $obj -> create = array($myObj);
    $batch = json_encode($obj);

Pero al imprimir el resultado de mi codigo sale asi:

{"create":[ 
  {"name":["TAG1,","TAG2,","TAG3"]}
  ]
}

¿Como puedo lograr que mi array quede como en el ejemplo de la API? (Los datos del array no son fijos, varian dependiendo lo que manden los usuarios)

1 respuesta 1

0

Vas bien, simplemente estas asignando el arreglo en el lugar equivocado. En el ejemplo del API, todo lo que esta encerrado por llaves {...} es un objeto, todo lo que esta encerrado por corchetes [] es un arreglo.

Tu ejemplo quedaría de la siguiente manera.

    $array = array("TAG1", "TAG2", "TAG3");
    $objects = array();
    for($i=0; $i<count($array); $i++) {
      $myObj = new stdClass();
      $myObj->name = $array[$i];
      $objects[] = $myObj;
    }  
    $obj = new stdClass();
    $obj -> create = array($objects);
    $batch = json_encode($obj);
1
  • Gracias!! me funciono perfectamente!
    – Areely
    Commented el 16 feb. 2021 a las 0:39

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.