遍历数组并获取键和值

12

我需要遍历一个动态数组。该数组将类似于以下内容:

Array
(
    [2010091907] => Array
        (
            [home] => Array
            (
                [score] => Array
                (
                        [1] => 7
                        [2] => 17
                        [3] => 10
                        [4] => 7
                        [5] => 0
                        [T] => 41
                    )

                [abbr] => ATL
                [to] => 2
            )

        [away] => Array
            (
                [score] => Array
                    (
                        [1] => 0
                        [2] => 7
                        [3] => 0
                        [4] => 0
                        [5] => 0
                        [T] => 7
                    )

                [abbr] => ARZ
                [to] => 2
            )

        [weather] => 
        [media] => Array
            (
                [tv] => FOX
                [sat] => 709
                [sathd] => 709
                [radio] => Array
                    (
                        [home] => 153
                        [away] => 90
                    )

            )

        [bp] => 13
        [yl] => 
        [qtr] => Final
        [down] => 0
        [togo] => 0
        [clock] => 00:26
        [posteam] => ARZ
        [note] => 
        [redzone] => 
        [stadium] => Georgia Dome
    )

我需要它是动态的,为了测试目的,我需要能够通过以下方式调用:

echo "Key: $key; Value: $value<br />\n";

之后我将把这些信息放入mysql数据库中,但现在,我需要复习数组并弄清楚如何格式化数据。

任何帮助都将不胜感激。

1个回答

24
我会选择使用递归函数:如果一个值是数组,则再次调用该函数,否则显示键/值对。

类似以下代码(未经测试):
function display_array($your_array)
{
    foreach ($your_array as $key => $value)
    {
        if is_array($value)
        {
            display_array($value);
        }
        else
        {
             echo "Key: $key; Value: $value<br />\n";
        }
    }
}

display_array($some_array);

这肯定有效。我只需要弄清楚如何使用这些信息调用数组中的对象,例如“home”的值等。 - drewrockshard
我最初以为您可能想要获取键的各个值,但是我放弃了这个想法,因为您有许多重复的键,例如 homeawayto 等。很高兴看到您已经解决了问题! - jeroen
1
很棒的答案!我必须将 if is_array($value) 更改为 if (is_array($value)) - garydavenport73

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