php,如何从多维数组中获取数据?

时间:2011-09-13 18:12:16

标签: php multidimensional-array

我有一个看起来像这样的数组:

foreach($obj as $key => $value)
{
print_r ($obj);
}

Array
(
[id] => 24991526504444
[name] => 21test
[picture] => http://profile.ak.fbcdn.net/hprofile-ak-sn4/276505_2499152255_s.jpg
[link] => http://apps.facebook.com/test/vote=6189373
[likes] => 1
[category] => Website
[parking] => Array
    (
        [street] => 0
        [lot] => 0
        [valet] => 0
    )

[payment_options] => Array
    (
        [cash_only] => 0
        [visa] => 0
        [amex] => 0
        [mastercard] => 0
        [discover] => 0
    )
)

如何从idlikes获取此数组中的数据。

我尝试了echo $key['likes']echo $key[$value['likes']]以及其他一些组合,但它不起作用

任何想法? 感谢

4 个答案:

答案 0 :(得分:2)

$key不是您的数组,$obj是您的数组。您应该使用$obj['likes']$obj['parking']['street']。您不必枚举密钥来访问对象中的键/值,只需使用$obj

此外,您的foreach没有意义:

foreach($obj as $key => $value)
{
    print_r ($obj);
}

这将显示“对于数组中的每个键,打印整个数组”。您根本不需要循环,print_r的全部目的是为您递归打印数组的内容而不进行循环。只需使用

print_r($obj);

答案 1 :(得分:1)

请阅读manual on arrays

您不需要循环来访问数组。您只需使用$obj['id']$obj['likes']

即可完成所需操作

答案 2 :(得分:1)

根据这个:

foreach($obj as $key => $value)
{
print_r ($obj);
}

您显示的数组实际上是$obj的完整结构,而不是其任何key =>值对。

所以你应该只需要:

echo $obj['likes'];
echo $obj['id'];

答案 3 :(得分:1)

您正在使用foreach,这意味着您正在迭代数组元素,您应该使用

    $obj['likes']

应返回数组上的值(在您的情况下为1)。

对于多维的

    $obj['payment_options']['cash_only']

应返回值(在您的情况下为0)