如何在数组php中循环遍历json数组

时间:2012-07-11 07:07:15

标签: php arrays json

我需要帮助遍历数组中的数组,我只需要循环遍历某些数组,例如,我如何只是通过名称数组?

Array
(
    [@total_records] => 10
    [@total_matching_records] => 10
    [@available_records] => 200
    [@available_matching_records] => 12
    [query] => Array
        (
            [summary] => Array
                (
                    [emails] => Array
                        (
                            [0] => Array
                                (
                                    [content] => jonathan.lyon@gmail.com
                                )

                        )

                )

        )

    [results] => Array
        (
            [person] => Array
                (
                    [@match_score] => 1
                    [summary] => Array
                        (
                            [names] => Array
                                (
                                    [0] => Array
                                        (
                                            [first] => Jonathan
                                            [last] => Lyon
                                            [display] => Jonathan Lyon
                                        )
                                    [1] => Array
                                        (
                                            [first] => Jonathan
                                            [last] => Jordan
                                            [display] => Jonathan Jordan
                                        )
                                )

我试过这个但是无法让它起作用: -

foreach($json_output['results']['person']['summary']['names'] as $key => $val) {
echo $key.": ".$val."</br>";
}

非常感谢任何帮助。

由于

乔纳森

3 个答案:

答案 0 :(得分:1)

你试过这个吗?

foreach($json_output['results']['person']['summary']['names'] as $key => $val) {
    echo $key.": ".$val['display']."</br>";
}

答案 1 :(得分:1)

在您的示例中,您尝试echo $key。您的案例中的键$key是数组索引(整数)。你确定你真的需要吗?

您需要将代码更改为:

foreach($json_output['results']['person']['summary']['names'] as $val) {
    echo $val['display']."</br>";
}

答案 2 :(得分:0)

您是否收到任何错误输出?这会有很大帮助。我还可以看到,在这种情况下,$ val是一个数组,所以你不想回应它。