2014-01-06 196 views
-3

我有一个PHP数组,当我用var_dump()这是结果我得到:访问PHP数组元素

array(1) { ["GetVehicleConfigurationByVehicleIdResult"]=> array(9) { ["Id"]=> string(1) "2" ["VIN"]=> NULL ["Year"]=> array(2) { ["Id"]=> string(4) "2006" ["Value"]=> string(4) "2006" } ["Make"]=> array(2) { ["Id"]=> string(1) "2" ["Value"]=> string(5) "Acura" } ["Model"]=> array(2) { ["Id"]=> string(1) "2" ["Value"]=> string(2) "TL" } ["Trim"]=> array(2) { ["Id"]=> string(6) "268650" ["Value"]=> string(12) "3.2 Sedan 4D" } ["Mileage"]=> string(6) "100000" ["OptionalEquipment"]=> array(1) { ["EquipmentOption"]=> array(35) { [0]=> array(13) { ["DisplayName"]=> string(19) "V6, VTEC, 3.2 Liter" ["VehicleOptionId"]=> string(3) "204" ["IsSelected"]=> string(4) "true" ["OptionTypeDisplayName"]=> string(6) "Engine" ["OptionGroupName"]=> string(3) "N/A" ["DisplayNameAdditionalData"]=> string(3) "N/A" ["ManufactureCode"]=> string(0) "" ["OptionAvailabilityDisplayName"]=> string(3) "N/A" ["IsDefaultConfiguration"]=> string(4) "true" ["DetailName"]=> string(3) "N/A" ["NonBoldName"]=> string(3) "N/A" ["Footer"]=> string(3) "N/A" ["SortOrder"]=> string(4) "1000" } 

如何,我可以得到从这个数组中的元素? 一些元素很复杂,就像它们是数组内部的数组一样。

这是格式化打印出数组中更好地理解:

Array 
(
[GetVehicleConfigurationByVehicleIdResult] => Array 
    (
     [Id] => 2 
     [VIN] => 
     [Year] => Array 
      (
       [Id] => 2006 
       [Value] => 2006 
      ) 

     [Make] => Array 
      (
       [Id] => 2 
       [Value] => Acura 
      ) 

     [Model] => Array 
      (
       [Id] => 2 
       [Value] => TL 
      ) 

     [Trim] => Array 
      (
       [Id] => 268650 
       [Value] => 3.2 Sedan 4D 
      ) 

     [Mileage] => 100000 
     [OptionalEquipment] => Array 
      (
       [EquipmentOption] => Array 
        (
         [0] => Array 
          (
           [DisplayName] => V6, VTEC, 3.2 Liter 
           [VehicleOptionId] => 204 
           [IsSelected] => true 
           [OptionTypeDisplayName] => Engine 
           [OptionGroupName] => N/A 
           [DisplayNameAdditionalData] => N/A 
           [ManufactureCode] => 
           [OptionAvailabilityDisplayName] => N/A 
           [IsDefaultConfiguration] => true 
           [DetailName] => N/A 
           [NonBoldName] => N/A 
           [Footer] => N/A 
           [SortOrder] => 1000 
          ) 

我想:ID,VIN,年份,牌子,型号,装饰条,里程和OptionalEquipment,并通过他们作为1单参数指向另一个方法。

它解决:

$Id = $resultVehicleId['GetVehicleConfigurationByVehicleIdResult']['Id']; 

$Year = $resultVehicleId['GetVehicleConfigurationByVehicleIdResult']['Year']['Value']; 
+0

您的谷歌搜索词是[*“多维”*](https://www.google.com/search?q=php+multi+dimensional+array&oq=php+multi+dimensional+array)。 – Emissary

+0

id = $ array ['Model'] ['id']; – user1336827

+0

'$ arrayname ['GetVehicleConfigurationByVehicleIdResult'] ['Id']'例如,或'$ arrayname ['GetVehicleConfigurationByVehicleIdResult'] ['Year'] ['Value']' – kero

回答

1

你是对的。这里有数组内部的数组。而var_dump显示它非常好,所以你可以完全知道如何浏览这个多维数组的水平。

如果你想VIN只得到$array['GetVehicleConfigurationByVehicleIdResult']['VIN']

对于一年你需要得到$array['GetVehicleConfigurationByVehicleIdResult']['Year']['Value']

我想你现在可以猜测别人。

1

他们只是数组元素不管你有多深,你跑那么可以只引用他们的名字象下面这样:

$id = $that_array['GetVehicleConfigurationByVehicleIdResult']['Id']; 
+0

$ that_array是什么?我在那里使用的任何东西我有一个错误。 – nikta

+0

$ that_array是您在var_dump()中放置的变量。这是一个占位符名称。 – user3087663

1
$id = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Id'];; 
$vin = $array_name["GetVehicleConfigurationByVehicleIdResult"]['VIN']; 
$year = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Year'] 
$make = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Make']; 
$model = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Model']; 
$trim = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Trim']['Value']; 
$mileage = $array_name["GetVehicleConfigurationByVehicleIdResult"]['Mileage']; 
$optional_equipment = $array_name["GetVehicleConfigurationByVehicleIdResult"]['OptionalEquipment']['EquipmentOption'][0]['DisplayName']; 
+0

我使用了这一行,但它给了我错误:Undefined variable:array_name – nikta

1

为了简便起见,我假设这个数组被保存为$ array。

您可以从阵列访问数据是这样的:

$vin = $array['GetVehicleConfigurationByVehicleIdResult']['VIN']; 

但你说,你想他们都通过一个单一的参数,所以这样做,你可能会想只传递一个数组。

someFuntion($array['GetVehicleConfigurationByVehicleIdResult']);