如何在PHP中访问多维数组中的父键值?

时间:2015-11-19 17:45:29

标签: php arrays multidimensional-array

我有以下数组:

Array
(
    [copier-clb009] => Array
        (
            [status] => Printing
            [ping] => PING OK - Packet loss = 0%, RTA = 0.47 ms
            [model] => "Xerox WorkCentre 4265"
        )

    [copier-cor000] => Array
        (
            [status] => Printing
            [ping] => PING OK - Packet loss = 0%, RTA = 0.53 ms
            [model] => "Xerox WorkCentre 4265"
        )

    [printer-001] => Array
        (
            [status] => Idle
            [ping] => PING OK - Packet loss = 0%, RTA = 0.55 ms
            [model] => "Xerox Phaser 4600"
        )

    [printer-002-s1] => Array
        (
            [status] => Idle
            [ping] => PING OK - Packet loss = 0%, RTA = 0.86 ms
            [model] => "Xerox WorkCentre 5955 v1 Multifunction System"
        )

)

例如,我尝试过:

echo $printers[0];

echo array_values($printers)[0];

期望结果为“copier-clb009”,但这些都不起作用。怎么了?

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你必须使用foreach循环,这对你有用。

foreach($printers as $key => $value){
    echo $key.'<br />';
}

这将打印您的所有密钥 如果需要使用特定键值,可以根据需要设置变量。

答案 1 :(得分:1)

目前还不清楚你为什么要这样做,但是PHP已经为你提供了一个非常方便的构造来迭代可遍历的对象,比如名为foreach的数组

foreach($printers as $key => $value) {
    echo "$key => \n";
    foreach($value as $k => $v) {
        echo "$k: $v\n";
    }
    echo "\n";
}

foreach构造使您可以访问每次迭代时迭代的每个元素的键和值。所以真的没有必要在这里使用array_valuesarray_keys进行鸡啄。