2 回答

TA貢獻1942條經驗 獲得超3個贊
您可以使用鍵和NULL(或任何您需要的)作為值來定義初始數組:
$entities = [
'deliveredAt' => null,
'issuedAt' => null,
'totals' => [
'due' => null,
'gross' => null,
'net' => null,
'tax' => [
'amount' => null,
'net' => null,
'rate' => null,
],
]
];
// here's your real data
$realData = [
"issuedAt" => "2020-08-20",
"totals" => [
"tax" => [
'net' => 42,
]
]
];
// now use array_replace_recursive to replace keys in `$entities` with values of `$realData`
print_r(array_replace_recursive($entities, $realData));
小提琴。
另請注意,$realData不存在的鍵$entities將被添加到結果中。

TA貢獻1856條經驗 獲得超11個贊
您可以使用array_replace_recursive來執行此操作。您只需稍微更改關聯數組實體,因此每個屬性都需要初始化(例如 NULL 或 '')。
$result?=?array_replace_recursive($entities,?$array);
在這里您可以測試它http://sandbox.onlinephpfunctions.com/code/4688ed3240050479edeef7c9e4da16f98dbe01de
這是孔代碼:
$array = [
? "issuedAt" => "2020-08-20",
? "totals" => [
? ? "tax" => [
? ? ? ? 'amount' => 100
? ? ]
? ]
];
$entities = [
? ? 'deliveredAt' => NULL,
? ? 'issuedAt' => NULL,
? ? 'totals' => [
? ? ? ? 'due' => NULL,
? ? ? ? 'gross' => NULL,
? ? ? ? 'net' => NULL,
? ? ? ? 'tax' => [
? ? ? ? ? ? 'amount' => NULL,
? ? ? ? ? ? 'net' => NULL,
? ? ? ? ? ? 'rate' => NULL
? ? ? ? ],
? ? ]
];
$result = array_replace_recursive($entities, $array);
var_dump($result);
- 2 回答
- 0 關注
- 173 瀏覽
添加回答
舉報