Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将数组数组转换为laravel中没有索引的对象数组_Php_Arrays_Json_Laravel_Response - Fatal编程技术网

Php 无法将数组数组转换为laravel中没有索引的对象数组

Php 无法将数组数组转换为laravel中没有索引的对象数组,php,arrays,json,laravel,response,Php,Arrays,Json,Laravel,Response,我从一个API得到了以下JSON响应 [ [ {"companyID":"U72200TG2005PTC045191","companyName":"OPEN TEXT TECHNOLOGIES INDIA PRIVATE LIMITED"}, {"companyID":"U51909HR2002PTC034956","companyName":"OPEN WAYS MARKETING PRIVATE LIMITED"}, {"companyID":"U00892HR200

我从一个API得到了以下JSON响应

[
  [
   {"companyID":"U72200TG2005PTC045191","companyName":"OPEN TEXT TECHNOLOGIES INDIA PRIVATE LIMITED"},
   {"companyID":"U51909HR2002PTC034956","companyName":"OPEN WAYS MARKETING PRIVATE LIMITED"},
   {"companyID":"U00892HR2005PTC035863","companyName":"OPEN HOUSE DIGITAL MEDIA PRIVATE LIMITED"},
   {"companyID":"U00804KA1999PTC024813","companyName":"OPEN LEAF STOCKS AND SHARES PRIVATE LIMITED"},
   {"companyID":"U72300KA2000PTC026648","companyName":"OPEN STREAM TECHNOLOGIES (INDIA) PRIVATE LIMITED"},
   {"companyID":"U72200KA2003PTC032219","companyName":"OPENCLOVIS SOLUTIONS PRIVATE LIMITED"},
   {"companyID":"U72200KA2003PTC032083","companyName":"OPEN-SILICON RESEARCH PRIVATE LIMITED"},
   {"companyID":"U72900KA2003PTC033042","companyName":"OPENGEAR NETWORKS PRIVATE LIMITED"},
   {"companyID":"U72200DL2005PTC170412","companyName":"OPEN SOLUTIONS SOFTWARE SERVICES PRIVATE LIMITED"},
   {"companyID":"U72112MP1985PTC002837","companyName":"OPEN END SPINNERS PVT LTD"}
  ]
]
我想把它转换成一个合适的对象数组

[
{"companyID":"U72200TG2005PTC045191","companyName":"OPEN TEXT TECHNOLOGIES INDIA PRIVATE LIMITED"},
{"companyID":"U51909HR2002PTC034956","companyName":"OPEN WAYS MARKETING PRIVATE LIMITED"},
{"companyID":"U00892HR2005PTC035863","companyName":"OPEN HOUSE DIGITAL MEDIA PRIVATE LIMITED"}
]
但我无法做到这一点

这是我尝试过的代码

$data = json_decode($result,true);

$new_array = array();
foreach ($data[0] as $to_obj)
{
  new_array[] = (object)$to_obj;
}

return ($new_array);
$result是来自API的JSON。当我这样做时,$new_数组返回

array:10 [
  0 => {#546
    +"companyID": "U72200TG2005PTC045191"
    +"companyName": "OPEN TEXT TECHNOLOGIES INDIA PRIVATE LIMITED"
  }
  1 => {#576
    +"companyID": "U51909HR2002PTC034956"
    +"companyName": "OPEN WAYS MARKETING PRIVATE LIMITED"
  }
  2 => {#574
    +"companyID": "U00892HR2005PTC035863"
    +"companyName": "OPEN HOUSE DIGITAL MEDIA PRIVATE LIMITED"
  }
  3 => {#552
    +"companyID": "U00804KA1999PTC024813"
    +"companyName": "OPEN LEAF STOCKS AND SHARES PRIVATE LIMITED"
  }
  4 => {#548
    +"companyID": "U72300KA2000PTC026648"
    +"companyName": "OPEN STREAM TECHNOLOGIES (INDIA) PRIVATE LIMITED"
  }
  5 => {#572
    +"companyID": "U72200KA2003PTC032219"
    +"companyName": "OPENCLOVIS SOLUTIONS PRIVATE LIMITED"
  }
  6 => {#571
    +"companyID": "U72200KA2003PTC032083"
    +"companyName": "OPEN-SILICON RESEARCH PRIVATE LIMITED"
  }
  7 => {#570
    +"companyID": "U72900KA2003PTC033042"
    +"companyName": "OPENGEAR NETWORKS PRIVATE LIMITED"
  }
  8 => {#569
    +"companyID": "U72200DL2005PTC170412"
    +"companyName": "OPEN SOLUTIONS SOFTWARE SERVICES PRIVATE LIMITED"
  }
  9 => {#560
    +"companyID": "U72112MP1985PTC002837"
    +"companyName": "OPEN END SPINNERS PVT LTD"
  }
]
但数组索引也即将到来。我希望它如下所示

[
    {"companyID":"U72200TG2005PTC045191","companyName":"OPEN TEXT TECHNOLOGIES INDIA PRIVATE LIMITED"},
    {"companyID":"U51909HR2002PTC034956","companyName":"OPEN WAYS MARKETING PRIVATE LIMITED"},
    {"companyID":"U00892HR2005PTC035863","companyName":"OPEN HOUSE DIGITAL MEDIA PRIVATE LIMITED"}
    ]

我如何做到这一点?我已经尝试过了,但我的最终JSON响应包含了我不想要的数组索引。

就我个人而言,我会以这种方式绕过迭代:

$data = (array)json_decode($result);
return reset($data);
这会将内部值保留为对象,但仍将内部值作为对象返回

如果必须迭代,则应调用
array\u values
作为返回:

// Everything that you have above, just replace the return with
return array_values($new_array);
这将消除键,并使其成为
json\u encode
将其视为数组,而不是专用对象


也就是说,如果您正在进行
var\u转储
var\u导出
,它将始终包含索引号。这只是格式的一部分。

就我个人而言,我会这样绕过迭代:

$data = (array)json_decode($result);
return reset($data);
这会将内部值保留为对象,但仍将内部值作为对象返回

如果必须迭代,则应调用
array\u values
作为返回:

// Everything that you have above, just replace the return with
return array_values($new_array);
这将消除键,并使其成为
json\u encode
将其视为数组,而不是专用对象


也就是说,如果您正在进行
var\u转储
var\u导出
,它将始终包含索引号。这只是格式化的一部分。

我相信这不是一个问题,这是php数组的行为,如果数组没有任何索引,那么默认情况下它将采用数字索引,请查看@Ajeesh,我认为
$data=json\u decode($result,true)
和使用
$data[0]
将提供预期的输出。我相信这不是问题,这是php数组的行为,如果数组没有任何索引,那么默认情况下它将采用数字索引,请查看@Ajeesh,我想
$data=json\u decode($result,true)
并使用
$data[0]
将获得预期的输出。