PHP nasıl karmaşık bir dizi değerleri çekip alabilirim?

3 Cevap php

Ben şu diziyi döndüren bir sabun işlevini arıyorum:

Array ( [FastAddressResult] => Array ( [IsError] => false [ErrorNumber] => 0 [ErrorMessage] => [Results] => Array ( [Address] => Array ( [Id] => 13872147.00 [OrganisationName] => [DepartmentName] => [Line1] => Methley Grove [Line2] => [Line3] => [Line4] => [Line5] => [PostTown] => Leeds [County] => West Yorkshire [Postcode] => LS7 3PA [Mailsort] => 64121 [Barcode] => [IsResidential] => false [IsSmallOrganisation] => false [IsLargeOrganisation] => false [RawData] => [GeographicData] => Array ( [GridEastM] => 0 [GridNorthM] => 0 [Objective2] => false [Transitional] => false [Longitude] => 0 [Latitude] => 0 [WGS84Longitude] => 0 [WGS84Latitude] => 0 ) ) ) )

Ben şu işe görünmüyor değerleri exstract gerekir:

$this->adressline1 = $result->FastAddressResult->Results->Address->Line1;

3 Cevap

Deneyin:

$this->adressline1 = $result[ "FastAddressResult" ][ "Results" ][ "Address" ][ "Line1" ];

Sen $ result-> kullanmak fastAddressResult-> vb $ sonuç bir nesne olsaydı isterdim. this page PHP diziler hakkında daha fazla bilgi için kontrol edin.

Ayrıca, bu tür kompleks dizi belirli tasarım kokuları vardır. Bunu daha basit ve daha okunabilir hale getirmek için bir yol düşünebiliriz.

Onlar Dizileri kaplı Açıkçası birisi programlama sınıfta dikkat etmedi ...

$this->adressline1 = $result['FastAddressResult']['Results']['Address']['Line1'];

ya da ilk bir stdClass için dizi dönüştürmek:

$data = (object) $myarray;

ama sen de o tüm diziler için bunu yapmak zorunda, bu yüzden hiçbir ediyorum.

Bu gibi kullanın,

bazı değişken saklanan dizi $ res olarak adlandırılan

   echo $res[ "FastAddressResult" ][ "Results" ][ "Address" ][ "Line1" ];