【问题标题】:Using foreach loop through array in an array using php在使用php的数组中使用foreach循环遍历数组
【发布时间】:2013-11-05 05:50:35
【问题描述】:
我对 PHP 还很陌生,天一直在循环这个数组...叹息...
http://pastebin.com/Rs6P4e4y
我正在尝试获取作者和导演数组的名称和头像值。
我一直在尝试找出与它一起使用的 foreach 函数,但没有运气。
<?php foreach ($directors as $key => $value){
//print_r($value);
}
?>
感谢任何帮助。
【问题讨论】:
标签:
php
arrays
foreach
stdclass
【解决方案1】:
您的解决方案已经发布,但我想补充一点:
这不是一个数组,它是一个对象。实际上,对象的 director 属性是一个数组。看看什么是对象,什么是关联数组!
对象有属性,数组有键和值。
$object = new stdClass();
$object->something = 'this is an object property';
$array = new array();
$array['something'] = 'this is an array key named something';
$object->arrayproperty = $array;
echo $object->arrayproperty['something']; //this is an array key named something
祝你学习 PHP 好运! :)
【解决方案2】:
拥有变量$foo,它是一个对象,您可以使用语法访问属性bar:
$foo->bar
因此,如果您有一个名为 $directors 的数组 od director,您可以在 foreach 中以相同的方式简单地使用它:
foreach ($directors as $value){
echo $value->name." ".$value->images->headshot;
}
【解决方案3】:
使用-> 访问对象的属性。
foreach ($directors as $director) {
echo 'Name: ' . $director->name . "\n";
echo "Headshot: " . $director->images->headshot . "\n";
}
【解决方案4】:
你在寻找这样的野兽吗?您没有写出您想如何处理它们,但希望这对您有所帮助。
$directors = array();
foreach( $object->people->directors as $o )
$directors[] = array( 'name' => $o->name, 'headshot' => $o->images->headshot );
$writers = array();
foreach( $object->people->writers as $o )
$writers[] = array( 'name' => $o->name, 'headshot' => $o->images->headshot );
var_dump( $directors );
var_dump( $writers );
最后一点,如果不能保证设置了这些成员,请在进行任何脏活之前使用isset。
希望这会有所帮助。