从stdClass对象中提取特定值

问题描述 投票:0回答:1

我在$ response中包含以下stdClass对象:

stdClass Object ( [domain] => stdClass Object ( [id] => d1111111 [spamscore] => 75 [rejectscore] => 200 ) [domainalias] => Array ( ) [wildcard] => Array ( ) [catchall] => Array ( ) [forward] => Array ( ) [mailbox] => Array ( 

[0] => stdClass Object ( [highEmailNotification] => [id] => m1111111 [lastPasswordChange] => 2020-02-19T22:41:12+00:00 [local] => mailbox1 [lowEmailNotification] => [quotaMB] => 10240 [receive] => 1 [rejectscore] => [send] => 1 [spamscore] => [usageMB] => 0 [enabled] => 1 )

[1] => stdClass Object ( [highEmailNotification] => [id] => m2222222 [lastPasswordChange] => 2020-02-17T15:46:21+00:00 [local] => mailbox2 [lowEmailNotification] => [quotaMB] => 10240 [receive] => 1 [rejectscore] => [send] => 1 [spamscore] => [usageMB] => 0 [enabled] => 1 )

[2] => stdClass Object ( [highEmailNotification] => [id] => m3333333 [lastPasswordChange] => 2020-02-19T15:00:36+00:00 [local] => mailbox3 [lowEmailNotification] => [quotaMB] => 1024 [receive] => 1 [rejectscore] => 0 [send] => 1 [spamscore] => 75 [usageMB] => 0 [enabled] => 1 ) ) [spamblacklist] => Array ( ) [spamwhitelist] => Array ( ) [responder] => Array ( ) [name] => domain.com )

我需要将其转换为数组并从中提取特定值,即[id]和[local]。

速度也是一个问题,因为此数组将增长到成千上万个项目,所以如果有其他比“ foreach”更快的方法会更好。

我从这里使用了一些建议,例如:

$array = json_decode(json_encode($response), True);

foreach ($array as $var)
{
    echo $var['id'] . ' - ' . $var['local'] . "<br>";
}

并获得部分成功:

d1111111-

-

-

-

-我-我

(因此找到了第一个[id]值)

但是它错过了我追求的最重要的价值观。

我需要得到的是:

m1111111-邮箱1

m2222222-邮箱2

m3333333-邮箱3

任何建议都将不胜感激。

arrays object stdclass
1个回答
0
投票

您要打印的值在$response中的嵌套数组中。

尝试一下。

$array = json_decode(json_encode($response['mailbox']), True);

foreach ($array as $var)
{
    echo $var['id'] . ' - ' . $var['local'] . "<br>";
}
© www.soinside.com 2019 - 2024. All rights reserved.