2014-07-17 7 views
-1

Je suis assez nouveau pour PHP et j'écris une fonction PHP qui saisit un objet de SOAP. J'ai trouvé un code pour le convertir en tableau mais je ne parviens pas à répercuter des données.Comment faire écho une valeur de tableau

Le tableau de print_r

Array 
(
    [Status] => Array 
     (
      [Code] => 0 
      [Message] => OK 
     ) 

    [Order] => Array 
     (
      [OrderNumber] => 9334543 
      [ExternalOrderNumber] => 
      [OrderTime] => 2014-07-15T15:20:31+02:00 
      [PaymentMethod] => invoice 
      [PaymentStatus] => Paid 
      [ShipmentMethod] => Mypack 
      [DeliveryStatus] => Delivered 
      [Language] => sv 
      [Customer] => Array 
       (
        [CustomerId] => 13556 
        [CustomerNumber] => 
        [Username] => admin 
        [Approved] => 1 
        [OrgNumber] => 9309138445 
        [Company] => 
        [VatNumber] => 
        [FirstName] => Jane 
        [LastName] => Doe 
        [Address] => Gatan 
        [Address2] => 
        [Zip] => 1230 
        [City] => Staden 
        [Country] => Sweden 
        [CountryCode] => SE 
        [PhoneDay] => 84848474 
        [PhoneNight] => 
        [PhoneMobile] => 
        [Email] => [email protected] 
        [NewsLetter] => 
        [OrgType] => person 
        [OtherDelivAddress] => 
        [DelivName] => 
        [DelivAddress] => 
        [DelivAddress2] => 
        [DelivZip] => 
        [DelivCity] => 
        [DelivCountry] => 
        [DelivCountryCode] => 
       ) 

      [Comment] => 
      [Notes] => 9063025471 UK/MA 
      [CurrencyCode] => SEK 
      [ExchangeRate] => 1 
      [LanguagePath] => se 
      [FreightWithoutVat] => 0 
      [FreightWithVat] => 0 
      [FreightVatPercentage] => 25 
      [PayoptionFeeWithoutVat] => 0 
      [PayoptionFeeWithVat] => 0 
      [PayoptionFeeVatPercentage] => 25 
      [CodWithoutVat] => 0 
      [CodWithVat] => 0 
      [CodVatPercentage] => 0 
      [DiscountWithoutVat] => 0 
      [DiscountWithVat] => 0 
      [DiscountVat] => 0 
      [TotalWithoutVat] => 4388 
      [TotalWithVat] => 5485 
      [TotalVat] => 1097 
      [PayWithoutVat] => 
      [AffiliateCode] => 
      [AffiliateName] => 
      [OrderField] => Array 
       (
        [0] => Array 
         (
          [Name] => external_ref 
          [Value] => 43445 
         ) 

        [1] => Array 
         (
          [Name] => webshopid 
          [Value] => 423 
         ) 

        [2] => Array 
         (
          [Name] => webshopname 
          [Value] => Manuell 
         ) 

       ) 

     ) 

) 

Code de travail non

echo $array[1][0] 

J'ai essayé différentes combinaisons d'index. Je sais comment retourner les valeurs de l'objet de savon, mais si je pouvais le faire de cette façon, ce serait plus facile. Cela devrait fonctionner, n'est-ce pas?

+0

Quelle partie voulez-vous avoir en écho? – t3chguy

+0

print_r ($ array); – MH2K9

+0

Bien adresse, nom etc mais tant que je parviens à faire écho une valeur que je peux reposer – user3848819

Répondre

0

Vous devez utiliser $array['Status']['Code'], $array['Status']['Message'] , $array['Order']['OrderNumber'], $array['Order']['Customer']['CustomerId'] et ainsi de suite pour afficher vos données. C'est un tableau associatif donc vous devez utiliser des clés de chaîne et non des chiffres.

+0

J'ai fourni la même réponse 8 minutes avant Marcin Nabiałek. Et ma réponse a été votée 2 fois mais sa réponse a été acceptée. @ user3848819 Je suis juste curieux ... Suis-je manquer quelque chose? J'ai vérifié les réponses éditent les journaux, mais je ne peux pas trouver n'importe quoi ... –

+0

@tastro Probablement votre réponse était trop courte mais je ne sais pas. Je ne vous ai pas tellement critiqué. –

1

$ array [1] est le deuxième index du tableau. la clé de ce tableau nous « Status », ce tableau contient un code et un message

Je suppose que vous voulez faire l'écho du message, vous pouvez le faire avec le

echo $array[1]["Status"]["Message"]; 
0

Essayez d'accéder aux éléments de tableaux suivants avec les clés de chaîne, et non pas les entiers que vous utilisez:

echo $array['Order']['Customer']['Address']; 

Une autre façon, vous pouvez voir ce qui se passe est par itérer à travers le réseau, et imprimer les clés et valeurs:

foreach ($array as $key => $value) 
    echo "Key=$key value=$value<br>"; 
0

essayer

$array['Order']['Customer']['LastName'] 

est ma meilleure estimation sans perdre ma santé mentale dans cette ligne. Mais pour nous d'être sûr s'il vous plaît poster la print_r($array) sortie

+0

Vous étiez correct cela fonctionne très bien :) – user3848819

0

Il y a une certaine façon, je fais toujours ceci:

print_r($array); 

Et l'autre est

$array[0]['Order']['LastName'] 
Questions connexes