我正在尝试在 PHP 中创建这种格式的信息/数组
[OverrideEmailSettings] => stdClass Object (
[email@domain.com] => stdClass Object (
[Reports] => Array (
[0] => stdClass Object (
[ReportType] => 1
[SummaryFrequency] => Array (
[0] => stdClass Object (
[FrequencyType] => 8011
[SecondsPast] => 32400
)
)
[Filter] => stdClass Object (
[ClauseType] => and
[RuleField] =>
[RuleOperator] =>
[RuleValue] =>
[ClauseChildren] => Array (
[0] => stdClass Object (
[ClauseType] =>
[RuleField] => BackupJobDetail.TimeSinceStarted
[RuleOperator] => int_lte
[RuleValue] => 86400
)
)
)
)
)
)
)
这是我的代码 - $line = the equivelent to email@domain.com
$x = array(
'Reports' => array(
'ReportType' => '1',
'SummaryFrequency' => array(
'FrequencyType' => '8011',
'SecondsPast' => '32400',
),
'Filter' => array(
'ClauseType' => 'or',
'RuleField' => '',
'RuleOperator' => '',
'RuleValue' => '',
'ClauseChildren' => array(
'ClauseType' => '',
'RuleField' => 'BackupJobDetail.TimeSinceStarted',
'RuleOperator' => 'int_lte',
'RuleValue' => '86400',
),
),
),
);
$account_get_user_profile->OverrideEmailSettings->$line = $x;
但我想我的格式不正确。
答案 0 :(得分:1)
您需要将数组转换为 stdClass,例如:
<?php
$x = [
"Reports" => [
(object) [
"ReportType" => "1",
"SummaryFrequency" => [
(object) [
"FrequencyType" => "8011",
"SecondsPast" => "32400",
],
],
"Filter" => (object) [
"ClauseType" => "or",
"RuleField" => "",
"RuleOperator" => "",
"RuleValue" => "",
"ClauseChildren" => [
(object) [
"ClauseType" => "",
"RuleField" => "BackupJobDetail.TimeSinceStarted",
"RuleOperator" => "int_lte",
"RuleValue" => "86400",
],
],
],
],
],
];
print_r($x);