阵列com问题JSON多维



我正在尝试获取一个在另一个数组中的数组中的数据,我在论坛上进行了搜索,而Google和Google进行了几次尝试,但我没有成功。这似乎很容易抓住,但我整天都在脑子,我不能。

我将在JSON代码下方留下,以及我最后一次尝试传递给PHP的尝试。感谢。

代码JSON:

{
    "ordens_de_servico": [
        {
            "oser_numero_os": 23932944,
            "oser_nome_solicitante": "ED PI - CAMPO MAIOR",
            "oser_dt_abertura": "27/03/2018",
            "oser_pontos_refer_endereco": null,
            "oser_observ_reclamacao": null,
            "oser_prioridade": null,
            "servico": {
                "serv_cod_servico": 60,
                "serv_descr_servico": "CORTE POR DEBITO"
            },
            "cliente": {
                "nome": "ANTONIO WELTON DA SILVA OLIVEIRA",
                "telefone": " "
            },
            "unidade_consumidora": {
                "unid_ident_uc": 10945024,
                "logr_nome_logr_expandido": null,
                "medidor": "A2006171",
                "latitude": " -4.711808",
                "longitude": "-41.793455"
            },
            "faturas": [
                {
                    "total_fatura": "23.01"
                },
                {
                    "total_fatura": "17.88"
                },
                {
                    "total_fatura": "23.01"
                },
                {
                    "total_fatura": "21.9"
                },
                {
                    "total_fatura": "22.92"
                }
            ]
        }
    ]
}

代码php

<?php
// Read JSON file
$json = file_get_contents('oss.json');
//Decode JSON
$json_data = json_decode($json,true);
//Print data
print_r($json_data);

$os = $json_data['ordens_de_servico'][0]['oser_numero_os']. PHP_EOL;
$data = $json_data['ordens_de_servico'][0]['oser_dt_abertura']. PHP_EOL;
$cod_serv = $json_data['ordens_de_servico']['servico'][0]['serv_cod_servico']. PHP_EOL;
$total_fatura = $json_data['ordens_de_servico']['faturas'][0]['total_fatura']. PHP_EOL;
echo $os."<p>";
echo $data."<p>";
echo $cod_serv."<p>";
echo $total_fatura."<p>";
?>

我尝试在Fatura上循环失败

$json_data = json_decode($json,false);
foreach ( $json_data->ordens_de_servico as $valor){
        echo 'FATURA:'.$valor->faturas->total_fatura."<p>".PHP_EOL;
        echo PHP_EOL;
}

至少在这两行上缺少[0]:

$cod_serv = $json_data['ordens_de_servico']['servico'][0]['serv_cod_servico']. PHP_EOL;
$total_fatura = $json_data['ordens_de_servico']['faturas'][0]['total_fatura']. PHP_EOL;

他们需要是:

$cod_serv = $json_data['ordens_de_servico'][0]['servico']['serv_cod_servico']. PHP_EOL;
$total_fatura = $json_data['ordens_de_servico'][0]['faturas'][0]['total_fatura']. PHP_EOL;

通过数组中的元素循环的示例:

foreach($json_data['ordens_de_servico'] as $key => $value){
    echo $value["oser_numero_os"];
    foreach($json_data['ordens_de_servico'][$key]['faturas'] as $index => $row){
    }
}

最新更新