2017-10-25 21 views
1

PHPを使用してJSON形式の配列にデータを入力できるようにするためにAPIに取り組んでいます。JSONのオブジェクトのPHP配列

$newArray = array(); 
$i=0; 
foreach ($resultJSON as $i => $item) 
{ 
    $newArray['result'][$i]['ISO'] =$item['ISO']; 
    $newArray['result'][$i]['Country_Name']= $item['Country_Name'];; 

    $newArray['result'][$i]['Sector']['Retail']= (int)$item['Retail']; 
    $newArray['result'][$i]['Sector']['Food']= (int)$item['Food']; 
    $newArray['result'][$i]['Sector']['Transportation']= (int)$item['Transportation']; 
    $newArray['result'][$i]['Sector']['Transportation']= (int)$item['Telecom']; 
    $newArray['result'][$i]['Sector']['Household_Goods']= (int)$item['Household_Goods']; 
    $newArray['result'][$i]['Sector']['Oil_and_Gas']= (int)$item['Oil_and_Gas']; 
    $newArray['result'][$i]['Sector']['Electronics']= (int)$item['Electronics']; 
    $newArray['result'][$i]['Sector']['Automotive']= (int)$item['Automotive']; 
    $newArray['result'][$i]['Sector']['Chemicals']= (int)$item['Chemicals']; 
    $newArray['result'][$i]['Sector']['Technology']= (int)$item['Technology']; 
    $newArray['result'][$i]['Sector']['Pharmaceuticals']= (int)$item['Pharmaceuticals']; 
    $newArray['result'][$i]['Sector']['Construction']= (int)$item['Construction']; 
    $newArray['result'][$i]['Sector']['Machinery_and_Equipment']= (int)$item['Machinery_and_Equipment']; 
    $newArray['result'][$i]['Sector']['Metals']= (int)$item['Metals']; 
    $newArray['result'][$i]['Sector']['Aeronautics']= (int)$item['Aeronautics']; 
    $newArray['result'][$i]['Sector']['Business_services']= (int)$item['Business_services']; 
    $newArray['result'][$i]['Sector']['Utilities']= (int)$item['Utilities']; 
    $newArray['result'][$i]['Sector']['Personal_and_recreational_goods']= (int)$item['Personal_and_recreational_goods']; 
    $newArray['result'][$i]['Sector']['Paper']= (int)$item['Paper']; 
    $newArray['result'][$i]['Sector']['Other_services']= (int)$item['Other_services']; 

    $newArray['result'][$i]['Current_Average']= (int)$item['Current_Average']; 
    $newArray['result'][$i]['Forecast_Average']= (int)$item['Forecast_Average']; 

    $i++; 
} 


$resultJSON = (json_encode($newArray, JSON_FORCE_OBJECT)); 
header('Content-Type: application/json iHYPERLINK'); 
echo $resultJSON; 

私が構築している人々は、むしろオブジェクトの配列を持っていると言いました。

現在の出力は

{ "result": { "0": { "ISO": "US", "Country_Name": "U.S.", "Sector": { "Retail": 21, "Food": 34, "Transportation": 35, "Household_Goods": 39, "Oil_and_Gas": 50, "Electronics": 61, "Automotive": 49, "Chemicals": 51, "Technology": 67, "Pharmaceuticals": 62, "Construction": 54, "Machinery_and_Equipment": 57, "Metals": 39, "Aeronautics": 56, "Business_services": 54, "Utilities": 44, "Personal_and_recreational_goods": 45, "Paper": 33, "Other_services": 41 }, "Current_Average": 49, "Forecast_Average": 50 }, "1": { "ISO": "CA", "Country_Name": "Canada", "Sector": { "Retail": 1, "Food": 1, "Transportation": 40, "Household_Goods": 52, "Oil_and_Gas": 71, "Electronics": 63, "Automotive": 79, "Chemicals": 45, "Technology": 84, "Pharmaceuticals": 89, "Construction": 59, "Machinery_and_Equipment": 64, "Metals": 34, "Aeronautics": 58, "Business_services": 55, "Utilities": 46, "Personal_and_recreational_goods": 80, "Paper": 39, "Other_services": 47 }, "Current_Average": 55, "Forecast_Average": 56 } 

彼らは

{"result":[{ "ISO": "US", "Country_Name": "U.S.", "Sector": { "Retail": 21, "Food": 34, "Transportation": 35, "Household_Goods": 39, "Oil_and_Gas": 50, "Electronics": 61, "Automotive": 49, "Chemicals": 51, "Technology": 67, "Pharmaceuticals": 62, "Construction": 54, "Machinery_and_Equipment": 57, "Metals": 39, "Aeronautics": 56, "Business_services": 54, "Utilities": 44, "Personal_and_recreational_goods": 45, "Paper": 33, "Other_services": 41 }, "Current_Average": 49, "Forecast_Average": 50 }, { "ISO": "CA", "Country_Name": "Canada", "Sector": { "Retail": 1, "Food": 1, "Transportation": 40, "Household_Goods": 52, "Oil_and_Gas": 71, "Electronics": 63, "Automotive": 79, "Chemicals": 45, "Technology": 84, "Pharmaceuticals": 89, "Construction": 59, "Machinery_and_Equipment": 64, "Metals": 34, "Aeronautics": 58, "Business_services": 55, "Utilities": 46, "Personal_and_recreational_goods": 80, "Paper": 39, "Other_services": 47 }, "Current_Average": 55, "Forecast_Average": 56 }]} 

を求めているしかし彼らは数字が表示したくないが、私はこれを行う方法を見当がつかないです。

ご協力いただければ幸いです。

+0

キー配列を避けるためには以下のような配列をエンコードする必要がある、私がチェックする方法をフォーマット –

+0

で間違っているようですか?私は$ resultJSON =(json_encode($ newArray、JSON_FORCE_OBJECT))を使用しています。 Json_encodeなので、私は他に何をすべきか分かりません。申し訳ありません:( –

+0

$ resultJSONの値を投稿して、入力が何であり、どのようにあなたの必要な出力にフォーマットするのが表示されるのですか? –

答えて

3

フラグJSON_FORCE_OBJECTを削除し、プラスカウンター$++を削除します。あなたの問題を解決するはずです。

$resultJSON = json_encode($newArray); 

JSON_FORCE_OBJECT

出力オブジェクトではなく、非連想配列が使用されているアレイ。出力の受信者がオブジェクトを期待しており、配列が空の場合に特に便利です。 PHP 5.3.0から利用可能です。

0

あなただけの最初のJSONの出力を確認してください

$resultJSON = json_encode(array_values($newArray));