在PHP中访问嵌套数组JSON数据

时间:2019-01-16 15:43:37

标签: php

我有一个像这样的JSON数组:

"custom_fields": [
    {
        "label": "Customer_Info",
        "data": "10"
    },  
    {   
        "label": "Customer_Other",
        "data": "50"
    }

我能够访问数据并像这样打印它:

$data = $_POST['custom_fields'];

foreach ($data as $item) {
    $line = '';
    foreach ($item as $key => $value) {
        if ($key == 'data'){
            $line .= "$key: $value, ";
        }
    }
    $current .= rtrim($line, ', ')."\n";
}

然后我得到如下输出:

data: 10
data: 50

问题是,我只想获取datalabel的{​​{1}}值,这样我只有一个值为Customer_Info的字符串。我该怎么办?

在我遗留剩下的几根头发之前,任何帮助都将不胜感激:/

2 个答案:

答案 0 :(得分:1)

您不需要嵌套循环。 1 foreach就足够了。检查$item

中的值
$data = array(array("label" => "Customer_Info",
                    "data" => "10"),
              array("label" => "Customer_Other",
                    "data" => "50"));

$line = '';
foreach ($data as $item)
{
    if (isset($item['label'])
        && isset($item['data'])
        && $item['label'] == 'Customer_Info')
    {
        $line .= "data: {$item['data']}, ";
    }
}
$current = rtrim($line, ', ')."\n";
echo $current;

输出:

  

数据:10

答案 1 :(得分:0)

如果只有InitialBaselinelabel的一个,则提取Customer_Info值并在data值上进行索引会更容易:

label