我有一个看起来像这样的数组:
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
)
)
如何从id
或likes
获取此数组中的数据。
我尝试了echo $key['likes']
或echo $key[$value['likes']]
以及其他一些组合,但它不起作用
任何想法? 感谢
答案 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)