2013-07-26 65 views
0

我有一個多維數組,讓我這樣的:多維數組重要的參考

  [ShipmentServiceLevelCategory] => test 
      [OrderTotal] => Array 
       (
        [Amount] => 11.11 
        [CurrencyCode] => GBP 
       ) 

      [ShipServiceLevel] => Std UK Dom 
      [MarketplaceId] => test 
      [ShippingAddress] => Array 
       (
        [Phone] => 123213213213 
        [PostalCode] => TES T12 
        [Name] => Test 
        [CountryCode] => GB 
        [StateOrRegion] => Test 
        [AddressLine1] => Test 
        [City] => Test 
       ) 

我想這個信息插入到我的數據庫,但我的列名是從數組鍵不同的,所以我想創建另一個包含鍵映射的數組。以下是我迄今爲止嘗試:

$map = array('ShippingAddress['Phone']' => 'DEL_PHONE','ShippingAddress['PostalCode']'=> 'DEL_POSTCODE','ShippingAddress['Name']' => 'DEL_NAME'); 

但是這給了我一個語法錯誤,有人能指出我要去哪裏錯了嗎?

+0

什麼是您的列名稱? – Ahmad

+0

我的列名是DEL_PHONE,DEL_POSTCODE等 –

回答

0
$map = array('ShippingAddress' => array (
'Phone' => 'DEL_PHONE', 
'PostalCode' => 'DEL_POSTCODE', 
'Name' => 'DEL_NAME' 
)); 
+0

這可以工作,但這也意味着我將不得不爲其他列引用(OrderTotal)創建一個不同的映射數組, –

0

下面是正確的語法來獲得當前數組值,並用它們不同的陣列中

$new_array = array();

$new_array['DEL_PHONE'] = $current_array['ShippingAddress']['Phone'];

$new_array['DEL_POSTCODE'] = $current_array['ShippingAddress']['PostalCode'];

這應該給你一個好主意如何繼續

0

您可以製作一個這樣的數組:

define("DEL_PHONE", "col1"); 
define("DEL_NAME", "col2"); 
$attributes = array(
DEL_PHONE => $data['ShippingAddress']['Phone'], 
DEL_NAME => $data['ShippingAddress']['PostalCode'] 
);