PHP - 可选的多维键(不同的 API 对象)
PHP - Optional multidimensional keys (differing API objects)
我正在尝试创建一个可以动态处理来自不同来源的多个不同 API 请求的函数。一些 API 对象将以不同的方式 return 数据,但我希望能够使用我的 $fees 数组访问 API 对象中的数据。
这是我的用例:
$fees => Array
(
[0] => data
[1] => transaction_config
[2] => total_fee_amount
)
我想使用这个数组,这样我就可以像这样访问 API 对象中的数据:
$apiObject['data']['transaction_config']['total_fee_amount'];
一些 API 对象可能只嵌套两层,例如,
$fees => Array
(
[0] => data
[1] => fee_total
)
$apiObject['data']['fee_total'];
而且我希望能够根据费用数组的内容动态处理这个问题。
编辑:为了更好地说明,这是我尝试过但不起作用的方法
$feeKeys = '';
foreach ($fees as $feeKey) {
$feeKeys .= "['" . $feeKey . "']";
}
$test = $apiObject . $feeKeys;
这只是 returns
Array['data']['transaction_config']['total_fee_amount']
而不是值
不知道我对你的理解是否正确,但你可能会发现这个功能有用:
function flatCall($data_arr, $data_arr_call){
$current = $data_arr;
foreach($data_arr_call as $key){
$current = $current[$key];
}
return $current;
整个代码可能如下所示:
<?php
$fees = [
0 => 'data',
1 => 'transaction_config',
2 => 'total_fee_amount',
];
$apiObject = [
'data' => [
'transaction_config' => [
'total_fee_amount' => 5
]
]
];
function flatCall($data_arr, $data_arr_call){
$current = $data_arr;
foreach($data_arr_call as $key){
$current = $current[$key];
}
return $current;
}
$keys = array_values($fees);
$result = flatCall($apiObject, $keys);
变量保存在$result中。
是您要查找的内容吗?
我正在尝试创建一个可以动态处理来自不同来源的多个不同 API 请求的函数。一些 API 对象将以不同的方式 return 数据,但我希望能够使用我的 $fees 数组访问 API 对象中的数据。
这是我的用例:
$fees => Array
(
[0] => data
[1] => transaction_config
[2] => total_fee_amount
)
我想使用这个数组,这样我就可以像这样访问 API 对象中的数据:
$apiObject['data']['transaction_config']['total_fee_amount'];
一些 API 对象可能只嵌套两层,例如,
$fees => Array
(
[0] => data
[1] => fee_total
)
$apiObject['data']['fee_total'];
而且我希望能够根据费用数组的内容动态处理这个问题。
编辑:为了更好地说明,这是我尝试过但不起作用的方法
$feeKeys = '';
foreach ($fees as $feeKey) {
$feeKeys .= "['" . $feeKey . "']";
}
$test = $apiObject . $feeKeys;
这只是 returns
Array['data']['transaction_config']['total_fee_amount']
而不是值
不知道我对你的理解是否正确,但你可能会发现这个功能有用:
function flatCall($data_arr, $data_arr_call){
$current = $data_arr;
foreach($data_arr_call as $key){
$current = $current[$key];
}
return $current;
整个代码可能如下所示:
<?php
$fees = [
0 => 'data',
1 => 'transaction_config',
2 => 'total_fee_amount',
];
$apiObject = [
'data' => [
'transaction_config' => [
'total_fee_amount' => 5
]
]
];
function flatCall($data_arr, $data_arr_call){
$current = $data_arr;
foreach($data_arr_call as $key){
$current = $current[$key];
}
return $current;
}
$keys = array_values($fees);
$result = flatCall($apiObject, $keys);
变量保存在$result中。
是您要查找的内容吗?