laravel 中没有索引无法将数组数组转换为对象数组
Unable to convert array of arrays to array of objects without index in laravel
我从 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 返回了
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);
这会将您的内在价值保留为对象,并且仍然return将内在价值作为对象。
如果你必须迭代,那么你应该调用 array_values
作为 return:
// Everything that you have above, just replace the return with
return array_values($new_array);
这将消除键,这样 json_encode
会将其视为数组,而不是专用对象。
也就是说,如果您正在执行 var_dump
或 var_export
,它将始终包含索引号。这只是格式的一部分。
我从 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 返回了
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);
这会将您的内在价值保留为对象,并且仍然return将内在价值作为对象。
如果你必须迭代,那么你应该调用 array_values
作为 return:
// Everything that you have above, just replace the return with
return array_values($new_array);
这将消除键,这样 json_encode
会将其视为数组,而不是专用对象。
也就是说,如果您正在执行 var_dump
或 var_export
,它将始终包含索引号。这只是格式的一部分。