Avatar billede IT2011 Nybegynder
24. august 2011 - 20:42 Der er 2 kommentarer

Håndtering af data i array.

Hej

Jeg har et problem, ved en forspørgelse på et tlf nr så jeg typisk følgende svar:

stdClass Object (
    [Tele] => stdClass Object (
        [ContactInfo] => stdClass Object (
            [TelephoneNumber] =>
            [MobileTelephoneNumber] =>
            [FaxNumber] =>
            [EmailAddress] =>
            [URL] =>
        )
        [CompanyName] =>
        [FirstName] =>
        [LastName] =>
        [KrakTeleRegistrationNumber] =>
        [KrakNumber] => 0
        [Address] => stdClass Object (
            [RoadName] =>
            [RoadNumber] =>
            [PlaceName] =>
            [PostalCode] =>
            [PostalDistrict] =>
            [HouseNumberNumericFrom] => 
            [HouseNumberCharacterFrom] =>
            [Floor] =>
            [Door] =>
            [MunicipalityCode] =>
            [CountyCode] =>
        )
    )
)

Hvor jeg så kan hente oplysninger fra arrayet f.eks.:
$Adresse = $data->Tele->Address->RoadName . " " . $data->Tele->Address->HouseNumberNumericFrom;

Men hvis der er registreret 2 på et tlf nr får jeg følgende svar:
stdClass Object (
    [Tele] => Array (
        [0] => stdClass Object (
            [ContactInfo] => stdClass Object (
                [TelephoneNumber] =>
                [MobileTelephoneNumber] =>
                [FaxNumber] =>
                [EmailAddress] =>
                [URL] =>
            )
            [CompanyName] =>
            [FirstName] =>
            [LastName] =>
            [KrakTeleRegistrationNumber] =>
            [KrakNumber] => 
            [Address] => stdClass Object (
                [RoadName] =>
                [RoadNumber] =>
                [PlaceName] =>
                [PostalCode] =>
                [PostalDistrict] =>
                [HouseNumberNumericFrom] => 
                [HouseNumberCharacterFrom] =>
                [Floor] =>
                [Door] =>
                [MunicipalityCode] =>
                [CountyCode] =>
            )
        )
        [1] => stdClass Object (
            [ContactInfo] => stdClass Object (
                [TelephoneNumber] =>
                [MobileTelephoneNumber] =>
                [FaxNumber] =>
                [EmailAddress] =>
                [URL] =>
            )
            [CompanyName] =>
            [FirstName] =>
            [LastName] =>
            [KrakTeleRegistrationNumber] =>
            [KrakNumber] =>
            [Address] => stdClass Object (
                [RoadName] =>
                [RoadNumber] =>
                [PlaceName] =>
                [PostalCode] =>
                [PostalDistrict] =>
                [HouseNumberNumericFrom] =>
                [HouseNumberCharacterFrom] =>
                [Floor] =>
                [Door] =>
                [MunicipalityCode] =>
                [CountyCode] =>
            )
        )
    )
)

Hvordan skal jeg teste på det og hvordan skal min pointer se ud?

Dette virker jo ikke:
$Adresse = $data->Tele->0->Address->RoadName . " " . $data->Tele->Address->HouseNumberNumericFrom;
Avatar billede coderdk Praktikant
24. august 2011 - 20:59 #1
Du tilgår den med $data->Tele[0]->Address->RoadName osv...

Ved at lave:

if ( !is_array( $data->Tele ) )
{
    $data->Tele = array( $data->Tele );
}

Så burde $data->Tele altid være et array, som du efterfølgende tilgå som først nævnt. Evt kan du loope over med for/foreach eller lignende... F.eks.:

foreach ( $data->Tele as $item )
{
  echo "RoadName: " . $item->Address->RoadName . "<br>";
}
Avatar billede majbom Novice
24. august 2011 - 21:00 #2
du kan jo tjekke på om
$data->tele
er et array:

if(is_array($data->tele))
{
  $RoadName = $data->Tele[0]->Address->RoadName;
}
else
{
  $RoadName = $data->Tele->Address->RoadName;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester