访问 PHP 数组元素



当我使用时,我有一个PHP数组var_dump()这是我得到的结果:

  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、年份、品牌、型号、修剪、里程和可选设备,并将它们作为 1 个单个参数传递给另一种方法。

它解决了:

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

你是对的。这里的数组内部有数组。var_dump很好地展示了它,因此您可以完全知道如何导航这个多维数组的级别。

如果你想要VIN就$array['GetVehicleConfigurationByVehicleIdResult']['VIN']

对于年份,您需要获得$array['GetVehicleConfigurationByVehicleIdResult']['Year']['Value']

我想你现在可以猜到其他人了。

无论您深入多深,它们都只是数组元素,因此您可以按名称引用它们,如下所示:

$id = $that_array['GetVehicleConfigurationByVehicleIdResult']['Id'];
$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'];

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

您可以像这样访问数组中的数据:

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

但是您说您希望将它们全部作为单个参数传递,因此要做到这一点,您可能只想传递一个数组。

someFuntion($array['GetVehicleConfigurationByVehicleIdResult']);

最新更新