2017-08-26 61 views
1

我有以下JSON响应我从API无法阵列对象的阵列的阵列转换而不指数laravel

[ 
    [ 
    {"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"} 
] 

但我无法做到这一点

这是我曾尝试

代码

$ 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响应索引的数组,我不想要的。

+0

我相信这不是一个问题,这是PHP数组的行为,如果一个数组没有任何索引,那么默认情况下它将采用数字索引,看看https://3v4l.org/FkPPS –

+0

@Ajeesh我认为'$ data = json_decode($ result,true);'并使用'$ data [0]'会给你预期的输出。 –

回答

0

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

$data = (array)json_decode($result); 
return reset($data); 

,以保障你的内在价值为对象,仍然为对象返回的内在价值。

如果你必须重复,那么你应该调用array_values作为回报:

// Everything that you have above, just replace the return with 
return array_values($new_array); 

这将消除键,它就会让这个json_encode将把它作为一个数组,而不是一个专门的对象。

也就是说,如果您正在做var_dumpvar_export,它将始终包含索引编号。这只是格式的一部分。