我有一个像PayPal这样返回的数组:
Array
(
[responseEnvelope.timestamp] => 2010-09-07T23%3A06%3A33.737-07%3A00
[responseEnvelope.ack] => Success
[responseEnvelope.correlationId] => b9d9ca4f54f44
[responseEnvelope.build] => 1437064
[estimatedAmountTable.currencyConversionList(0).baseAmount.code] => USD
[estimatedAmountTable.currencyConversionList(0).baseAmount.amount] => 1.00
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(0).code] => EUR
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(0).amount] => 0.71
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(1).code] => USD
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(1).amount] => 1.00
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(2).code] => GBP
[estimatedAmountTable.currencyConversionList(0).currencyList.currency(2).amount] => 0.48
)
执行此操作的功能是:
function _deformat($nvpstr) {
foreach (explode('&', $nvpstr) as $nvp) {
list($key, $value) = explode('=', $nvp);
$data[$key] = $value;
}
return $data;
}
我想要这样的数组:
..
[EUR]
[amount] => 0.71
[GBP]
[amount] => 0.48
...
我可以拿到钥匙:
$ new_key = substr(strrchr($ key,“。”),1);
但在那之后我就陷入了困境。
答案 0 :(得分:0)
你可以在阵列上运行 并更改键和值,如:
foreach ($myarray as $key=>$val) {
if(strstr($key,'code')){
$myarray[$val] = $myarray[str_replace('code','amount',$key)];
unset($myarray[$key]);
unset($myarray[str_replace('code','amount',$key)]);
}
}