2017-08-26 9 views
1

私は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"} 
    ] 
] 

は、私は、オブジェクトの適切な配列に変換したい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"} 
] 

しかし、私はこの

これは私が

を試してみましたコードであるを達成することができません

$ 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); 

オブジェクトとして、あなたの内側の値を保持し、まだオブジェクトとして内部値を返します。

+0

これはphp配列の動作で問題ではないと思います。配列にインデックスがない場合は、デフォルトで数値インデックスが使用されます。https://3v4l.org/FkPPSをご覧ください。 –

+0

@Ajeesh私は '$ data = json_decode($ result、true);'と '$ data [0]'を使って、あなたに期待される出力を与えるでしょう。 –

答えて

0

個人的に、私は反復をこのようにバイパスします。

あなたが反復しなければならない場合は、戻り値としてarray_valuesを呼び出す必要があります:

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

これは、キーを排除し、json_encodeが配列ではなく、特殊なオブジェクトとして扱いますように、それはそれを行います。

つまり、var_dumpまたはvar_exportを実行している場合は、常にインデックス番号が含まれます。これは書式設定の一部です。

関連する問題