在PHP中将JSON数组中的值分配给变量

3

我有一个查询,在进行JSON编码和print_r()后,它看起来像这样:

Array
(    
    [response] => Array
        (
            [numFound] => 2392
            [start] => 0
            [maxScore] => 1
            [docs] => Array
                (
                )

        )

    [stats] => Array
        (
            [stats_fields] => Array
                (
                    [q_one] => Array
                        (
                            [min] => 0.0059
                            [max] => 6.0095
                            [count] => 2392
                            [missing] => 0
                            [sum] => 53.9131
                            [sumOfSquares] => 48.16448107
                            [mean] => 0.022538921404682
                            [stddev] => 0.14012800795752
                            [facets] => Array
                                (
                                )

                        )

                    [q_two] => Array
                        (
                            [min] => 0
                            [max] => 0.0075
                            [count] => 2392
                            [missing] => 0
                            [sum] => 17.67
                            [sumOfSquares] => 0.132525
                            [mean] => 0.0073871237458194
                            [stddev] => 0.00091333432809989
                            [facets] => Array
                                (
                                )

                        )

                    [q_three] => Array
                        (
                            [min] => 0
                            [max] => 0.065
                            [count] => 2392
                            [missing] => 0
                            [sum] => 153.14
                            [sumOfSquares] => 9.9541
                            [mean] => 0.064021739130435
                            [stddev] => 0.0079155641768643
                            [facets] => Array
                                (
                                )

                        )

                )

        )

)

stats >> stats_fields中,我想编写一个foreach循环来捕获每个标题的名称:q_oneq_twoq_three,但我不确定如何做到这一点。
我可以捕获每个这3个“标题”内的元素,因为它们的名称是静态的,(例如-每个都有一个min和一个max元素)
foreach ($json['stats']['stats_fields'] as $j) {
  echo $j['min']
}

但我不确定如何获取表头名称...

1个回答

5
使用array_keys()将它们放入数组中:
$headers = array_keys($json['stats']['stats_fields']);

或者使用$key => $value语法将它们放到循环中:
foreach ($json['stats']['stats_fields'] as $key => $j) {
  echo $key;
  echo $j['min'];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接