2010-09-08 19 views
0

我有一個數組返回像這樣來自PayPal:格式的PayPal陣列很好地在PHP

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

可以在陣列上運行, 並更改鍵和類似的值:

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)]); 
    } 
}