为什么我无法格式化我的JSON对象?

Sli*_*lim 0 php arrays json

我正在尝试构造一个包含内部对象的json对象.

我正在尝试以下代码 - 其中$ids包含一些ID的数组:

$result = array();

foreach ($ids as $value) {
    $tempArray = getCustomOptions($host, $dbUsername, $dbPassword, $dbName, $_SESSION['companyId'], $value);
    array_push($result, $tempArray);
}
    print_r(json_encode($result));
Run Code Online (Sandbox Code Playgroud)

getCustomOptions()还使用以下脚本返回的数组:

$dataArray = [];
while ($stmt->fetch()) {
      $dataArray[] = array(
           'id' => $id,
           'description' => $description
      );
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我print_r(json_encode($result));得到以下结果时:

[
    [
        {
            "id":21,
            "description":"Bshd"
        },
        {
            "id":22,
            "description":"Gandhi "
        },
        {
            "id":23,
            "description":"aaaa"
        },
        {
            "id":24,
            "description":"bbbbb"
        }
    ],
    [
        {
            "id":12,
            "description":"121"
        },
        {
            "id":13,
            "description":"qwe"
        },
        {
            "id":16,
            "description":"wD2"
        },
        {
            "id":17,
            "description":"we"
        }
    ],
    [
    ]
]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它返回一个数组内的一些数组,但我真正需要的是以下结构:

{

    "data1":[
        {
            "id":21,
            "description":"Bshd"
        },
        {
            "id":22,
            "description":"Gandhi "
        },
        {
            "id":23,
            "description":"aaaa"
        },
        {
            "id":24,
            "description":"bbbbb"
        }
    ],
    "data2":[
        {
            "id":12,
            "description":"121"
        },
        {
            "id":13,
            "description":"qwe"
        },
        {
            "id":16,
            "description":"wD2"
        },
        {
            "id":17,
            "description":"we"
        }
    ]

}
Run Code Online (Sandbox Code Playgroud)

我知道我在这里缺少一些非常小而基本的东西,但对我来说,php中的JSON操作仍然很难.

有人能给我一个线索或推动吗?

TIG*_*GER 5

您可以尝试使用以下代码以适当的格式生成阵列.

$result = array();
$i=1;
foreach ($ids as $value) {  
    $tempArray = getCustomOptions($host, $dbUsername, $dbPassword, $dbName, $_SESSION['companyId'], $value);
    $result['data'.$i] = $tempArray;
    $i++;
}
Run Code Online (Sandbox Code Playgroud)