对象中的对象中的对象?我如何检索数据?

时间:2013-07-29 15:59:16

标签: php arrays object

如何在AB_ID中检索ID和名称?我不想在foreach中循环,因为总会有一个结果而且似乎没必要。 (除非这是唯一的方法)。

这是PHP。

print_r($response); // gives data below.  truncated.
QueryResult Object
(
    [queryLocator] => 
    [done] => 1
    [records] => Array
        (
            [0] => stdClass Object
                (
                    [Account_Name] => business_name
                    [Account] => account_no
                    [AB] => 12344567
                    [AB_more] => stdClass Object
                        (
                            [Id] => 123445
                            [Name] => Test 3
                        )

我目前正在做的事情:

foreach($response as $key => $val) {
    $name = $val->Account_Name; #returns business_name
    $account = $val->Account; #returns account_no
    $ab = $val->AB; #returns 12344567

    // nothing below seems to work
    $ab_id = $val->AB_more->Id
    $ab_id = $val->AB_more.Id
    $ab_id = $val->AB_more[0]->Id

谢谢!

2 个答案:

答案 0 :(得分:1)

根本没有循环:

$response->records[0]->Account_Name;  # business_name
$response->records[0]->Account;       # account_no
$response->records[0]->AB;            # 12344567
$response->records[0]->AB_more->Id;   # 123445
$response->records[0]->AB_more->Name; # "Test 3"

一个循环:

foreach( $response->records[0] as $result ) {
    echo $result->Account_Name;
    echo $result->Account;
    echo $result->AB;
    echo $result->AB_more->Id;
    echo $result->AB_more->Name;
}

答案 1 :(得分:0)

Turn StdClass Objects into Arrays

get_object_vars() on PHP.net

我建议使用get_object_vars将Std类对象转换为数组。为两个内部对象执行此操作。这样你就可以调用[records] [Id]或[records] [Name]。

只是我的两分钱。希望这有帮助!