1

配列内にある名前と値のペアを持つオブジェクトの値を返す方法を知りたいです。私はあらゆる種類の方法を試してきましたが、率直に言って、これについて頭を悩ませている可能性があることに気付きました. プロパティ配列内の AirportsInformation_DataExtension 値を取得しようとしている支援が必要です。

stdClass Object
(
    [OverallStatus] => OK
    [RequestID] => 19e41b46-df68-47ba-8858-d728f3a92036
    [Results] => stdClass Object
        (
            [PartnerKey] => 
            [ObjectID] => 
            [Type] => DataExtensionObject
            [Properties] => stdClass Object
                (
                    [Property] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [Name] => CampaignName
                                    [Value] => 20130107_FlightDealsHotelPricePoints
                                )

                            [1] => stdClass Object
                                (
                                    [Name] => StartDate
                                    [Value] => 1/7/2013 12:00:00 AM
                                )

                            [2] => stdClass Object
                                (
                                    [Name] => EndDate
                                    [Value] => 1/15/2013 5:59:59 AM
                                )

                            [3] => stdClass Object
                                (
                                    [Name] => CampaignType
                                    [Value] => FlightDeals
                                )

                            [4] => stdClass Object
                                (
                                    [Name] => LandingPage_ExpireDate
                                    [Value] => 1/15/2013 5:59:59 AM
                                )

                            [5] => stdClass Object
                                (
                                    [Name] => LandingPage_AutoRedirectOnExpire
                                    [Value] => True
                                )

                            [6] => stdClass Object
                                (
                                    [Name] => LandingPage_ExpireTargetURL
                                    [Value] => test
                                )

                            [7] => stdClass Object
                                (
                                    [Name] => BookByDate
                                    [Value] => 1/22/2013 12:00:00 AM
                                )

                            [8] => stdClass Object
                                (
                                    [Name] => TravelStartDate
                                    [Value] => 
                                )

                            [9] => stdClass Object
                                (
                                    [Name] => TravelEndDate
                                    [Value] => 
                                )

                            [10] => stdClass Object
                                (
                                    [Name] => FlightDeals_DataExtension
                                    [Value] => 20130107_DestinationFlightDeals
                                )

                            [11] => stdClass Object
                                (
                                    [Name] => FlightDeals_SortOrder_DataExtension
                                    [Value] => FlightDeals_DestinationSortOrder
                                )

                            [12] => stdClass Object
                                (
                                    [Name] => HotelDeals_DataExtension
                                    [Value] => 20130107_FlightDealsHotelPricePoints
                                )

                            [13] => stdClass Object
                                (
                                    [Name] => HotelDeals_All_DataExtension
                                    [Value] => 20130107_HotelPackageDeals_ALL
                                )

                            [14] => stdClass Object
                                (
                                    [Name] => HotelInformation_DataExtension
                                    [Value] => EmailHotelInformation
                                )

                            [15] => stdClass Object
                                (
                                    [Name] => AirportsInformation_DataExtension
                                    [Value] => Airports
                                )

                            [16] => stdClass Object
                                (
                                    [Name] => RoutesInformation_DataExtension
                                    [Value] => Routes
                                )

                            [17] => stdClass Object
                                (
                                    [Name] => DFP_DataExtension
                                    [Value] => ET_DestinationIframeSrc
                                )

                            [18] => stdClass Object
                                (
                                    [Name] => DeepLinkConnectorURL
                                    [Value] => http://www.somewebsite/BookingConnector.html?mode=run
                                )

                            [19] => stdClass Object
                                (
                                    [Name] => DefaultDestinationScenery
                                    [Value] => LAS
                                )

                            [20] => stdClass Object
                                (
                                    [Name] => DefaultHomeAirportCode
                                    [Value] => 
                                )

                            [21] => stdClass Object
                                (
                                    [Name] => FailSafeHomeAiportCode
                                    [Value] => 
                                )

                            [22] => stdClass Object
                                (
                                    [Name] => DFP_Campaign_Banner
                                    [Value] => True
                                )

                            [23] => stdClass Object
                                (
                                    [Name] => EmailID
                                    [Value] => 44388
                                )

                        )

                )

        )

)

foreach ループを使用して、名前/値セットを含むすべての行を出力できました

foreach ($results->Results->Properties->Property as $CurrentProp){
    print('<br>');
    print('Name: '.$CurrentProp->Name. ' Value: '.$CurrentProp->Value.'<br>');                    
};

悲しいことに、私はそれを乗り越えることができません。値を取得するだけです。前もって感謝します。

4

4 に答える 4

2

値を取得するために、それらをループして名前の一致をテストできますAirportsInformation_DataExtension

foreach ($results->Results->Properties->Property as $CurrentProp){

    if($CurrentProp->Name == 'AirportsInformation_DataExtension')
    {
        echo 'The value is: ' . $CurrentProp->Value;
    }

}
于 2013-01-16T09:19:46.387 に答える
0

名前に基づいてすべての値を取得できるようにする必要がある場合は、次のように連想配列に変換すると便利です。

$results->Results->Properties->PropertyArray = array();
foreach($results->Results->Properties->Property as $arrCurrentProperty) {
  $results->Results->Properties->PropertyArray[$arrCurrentProperty->Name] = $arrCurrentProperty->Value;
};

次に、値を直接インデックス付けすることで、後で値を取得できます。

echo 'The value is: ' . $results->Results->Properties->PropertyArray['AirportsInformation_DataExtension'];
于 2013-01-16T09:24:58.903 に答える
0
foreach ($results->Results->Properties->Property as $CurrentProp){
    $tempArr[$CurrentProp->Name] = $CurrentProp->Value;
}

echo $tempArr['AirportsInformation_DataExtension'];

これにより、そのオブジェクトの他のキーにアクセスできます。

于 2013-01-16T09:32:24.973 に答える
0

MrCode による上記のソリューションを使用するか、単に$results->Results->Properties->Property[15]->ValueのインデックスAirportsInformation_DataExtensionが alwaysの場合に使用します15。配列はorderedリストであるため、配列からいくつかのアイテムを削除/追加しない限り、インデックスが変更されない可能性が非常に高いです/

于 2013-01-16T09:23:33.210 に答える