0

我有一个名为 $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 和名称?

4

2 回答 2

1

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

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

如果您还想包含数组的数字索引:

foreach ($result as $index=>$profile) {
    echo "(index ". $index .") ".$profile->id.": ".$profile->name." <br>";
}
于 2012-11-05T04:47:30.760 回答
1

您需要使用 foreach 遍历 $result 数组,然后使用“->”表示法访问“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
           }
     }
于 2012-11-05T04:49:44.987 回答