JSON中的PHP对象数组

时间:2017-10-25 12:10:58

标签: php arrays json

我正在开发一个API,能够使用PHP以JSON格式提供数组中的某些数据。

$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 }]}

所以他们不希望数字显示但我不知道如何做到这一点。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

删除标记JSON_FORCE_OBJECT并删除加号计数器$++。它应该可以解决你的问题。

$resultJSON = json_encode($newArray);
  

<强> JSON_FORCE_OBJECT

     

使用非关联数组时输出对象而不是数组。当输出的接收者期望一个对象并且该数组为空时特别有用。自PHP 5.3.0起可用。

答案 1 :(得分:0)

你只需要像下面那样对数组进行编码以避免数组键

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