用php转换JSON格式的嵌套数组时,会显示数字索引,而不是数组名称

用php转换JSON格式的嵌套数组时,会显示数字索引,而不是数组名称,php,arrays,json,Php,Arrays,Json,我正在尝试将多维php数组转换为JSON格式。 问题是JSON会为数组的每个值添加“数字键” 为了构造JSON,首先我进行了一次查询,然后,为了附加另一个数组(其中包含每个地方的营业时间),我对每个结果进行了另一次查询 这是我得到的JSON: { "sucursales": [ { "sucursal": { "id_sucursal": "104", "id_user": "2", "nombre_

我正在尝试将多维php数组转换为JSON格式。 问题是JSON会为数组的每个值添加“数字键”

为了构造JSON,首先我进行了一次查询,然后,为了附加另一个数组(其中包含每个地方的营业时间),我对每个结果进行了另一次查询

这是我得到的JSON:

{
"sucursales": [
    {
        "sucursal": {
            "id_sucursal": "104",
            "id_user": "2",
            "nombre_sucursal": "wena ql 2",
            "region": "0",
            "0": {
                "dia": "1",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "1": {
                "dia": "2",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "2": {
                "dia": "3",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "3": {
                "dia": "4",
                "hora_inicio": "600",
                "hora_fin": "600"
            }
        }
    }
    .....
]
}
这就是我想要的JSON:

{
"sucursales": [
    {
        "sucursal": {
            "id_sucursal": "104",
            "id_user": "2",
            "nombre_sucursal": "wena ql 2",
            "region": "0",
            "horario": {
                "dia": "1",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "horario": {
                "dia": "2",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "horario": {
                "dia": "3",
                "hora_inicio": "600",
                "hora_fin": "600"
            },
            "horario": {
                "dia": "4",
                "hora_inicio": "600",
                "hora_fin": "600"
            }
        }
    }
    .....
]
}
这是我用来将一个数组附加到另一个数组的代码。请注意,$result是mysql查询的结果

/* create one master array of the records */
$sucursales = array();
if(mysql_num_rows($result)) {
    while($sucursal = mysql_fetch_assoc($result)) {

        $query_horarios = "SELECT dia,hora_inicio,hora_fin FROM horario_funcionamiento WHERE id_sucursal=".$sucursal['id_sucursal'].";";
        $resultado_horarios = mysql_query($query_horarios,$link) or die('Error en la consulta SQL'); //.$query);

        while($horario = mysql_fetch_assoc($resultado_horarios)){
            $sucursal[]= $horario;
        }
        $sucursales[] = array('sucursal'=>$sucursal);
    }
}
以及我用于将数组转换为JSON格式的代码:

header('Content-type: application/json');
echo json_encode(array('sucursales'=>$sucursales));

我认为这是不可能的,相反,你可以:

....
while($horario = mysql_fetch_assoc($resultado_horarios)){
    $sucursal['horario'][] = $horario;
}
...

您正在尝试对多个对象使用同一密钥。@user2644614不客气。:)顺便说一句,如果答案解决了您的问题,您可以将其标记为已接受:)