数组中的嵌入对象

时间:2012-11-05 04:42:13

标签: php arrays object

我有一个名为$ result的数组, print_r($ result)的输出如下所示。

Array
(

[0] => Profile Object
    (
        [id] => 3
        [name] => alvis
        [parentLink] => ProfileLink Object
            (
                [href] => web
                [type] => data
            )
    )

[1] => Profile Object
    (
        [id] => 3
        [name] => gorgia
        [parentLink] => ProfileLink Object
            (
                [href] => text
                [type] => values
            )
    )

[2] => Profile Object
    (
        [id] => 4 
        [name] => text
        [parentLink] => ProfileLink Object
            (
                [href] => text
                [type] => values
            )
    )

 )

我尝试使用以下方式显示名称:

foreach ($results[name] as $key => $value) {
            echo $key . ": " . $value."<br>";
            }

但是我收到错误不能使用Profile类型的对象作为数组。

当我尝试

foreach ($results->name as $key => $value) {
            echo $key . ": " . $value."<br>";
            }

我收到了另一个错误:为foreach()提供的参数无效 是否有显示ID和名称?

2 个答案:

答案 0 :(得分:1)

您可以使用foreach遍历数组中的每个配置文件对象,然后使用->引用每个配置文件的属性。下面的代码忽略了数组的数字索引,只使用了配置文件对象中的idname

foreach ($result as $profile) {
    echo $profile->id .": ".$profile->name . " <br>";
}

如果你想包括数组的数字索引:

foreach ($result as $index=>$profile) {
    echo "(index ". $index .") ".$profile->id.": ".$profile->name." <br>";
}

答案 1 :(得分:1)

您需要使用foreach循环遍历$ result数组,然后使用“ - &gt;”访问“name”属性符号

    foreach ($result as $profile) {
            print $profile->name;
     }

如果要获取配置文件对象的所有属性,则必须使用get_object_vars()。

     foreach ($result as $profile) {
           $vars = get_object_vars($profile);
           foreach ($vars as $key => $var) {
                 echo $key . ": " . $var."<br>";
                 // add suitable looping for the ProfileLink object too
           }
     }