我有一个像这样的数组:
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']]
和更多的组合,它不工作
任何想法?由于
$key
不是你的数组,$obj
是你的数组。您应该使用$obj['likes']
或$obj['parking']['street']
。您不必枚举键来访问对象中的键/值,只需使用$obj
。
另外,你的foreach
也没有意义:
foreach($obj as $key => $value)
{
print_r ($obj);
}
表示"对于数组中的每个键,打印整个数组"。您根本不需要循环,print_r
的全部目的是递归地为您打印数组的内容,而不需要循环。只使用
print_r($obj);
请阅读数组手册
访问数组不需要循环。您可以简单地使用
$obj['id']
或$obj['likes']
。
按此:
foreach($obj as $key => $value)
{
print_r ($obj);
}
您所显示的数组实际上是$obj
的完整结构,而不是它的任何键=>值对。
所以你只需要:
echo $obj['likes'];
echo $obj['id'];
如果你使用foreach,这意味着你在迭代数组元素,你应该使用
$obj['likes']
应该返回数组的值(在你的例子中是1)。
对于多维
$obj['payment_options']['cash_only']
应该返回值(在您的例子中是0)