Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP] Problem z tablica asocjacyjna
Forum PHP.pl > Forum > Przedszkole
sci201
Witam !

Moj problem polega na nie umiejętności przypisania danej z tablicy która wyświetlam do zmiennej w celu dalszej jej przekazania. Opisze po ktrótce co z czym..Generuje do SOAP pewne zapytanie które mi w odpowiedzi generuje taką właśnie tablice :
  1. Poprawna odpowiedz
  2. stdClass Object
  3. (
  4. [result] => stdClass Object
  5. (
  6. [nrPrzesylki] => 4130080053361
  7. [nrExt] =>
  8. [mpk] =>
  9. [rodzajPrzesylki] => K
  10. [placi] => 1
  11. [formaPlatnosci] => G
  12. [nadawca] => stdClass Object
  13. (
  14. [numer] => xxxxxxxxx
  15. [nazwisko] =>
  16. [imie] =>
  17. [telKontakt] => 506007777
  18. [emailKontakt] => adres-email@siodemka.com
  19. )
  20.  
  21. [odbiorca] => stdClass Object
  22. (
  23. [numer] =>
  24. [nrExt] =>
  25. [czyFirma] => 1
  26. [nazwa] => Testowa firma Siodemka S.A.
  27. [nip] =>
  28. [nazwisko] => Kowalski
  29. [imie] => Jan
  30. [kodKraju] => PL
  31. [kod] => 03-876
  32. [miasto] => Warszawa
  33. [ulica] => ul.Matuszewska
  34. [nrDom] => 14
  35. [nrLokal] =>
  36. [telKontakt] => 506007777
  37. [emailKontakt] => adres-email2@siodemka.com
  38. )
  39.  
  40. )itp....
  41.  
  42. )


z tej tablicy musze wyciągnać zawartość pola "nrPrzesylki" zrobiłem to tak :

  1. try {
  2.  
  3. $result = $client->listNadanie($data);
  4.  
  5.  
  6. print "Poprawna odpowiedz \n";
  7.  
  8. foreach ($result as $key=>$value)
  9.  
  10. {
  11.  
  12. echo $value->nrPrzesylki."\n";
  13.  
  14.  
  15. echo "\n";
  16.  
  17. }
  18.  
  19.  
  20. }
  21.  
  22. catch(SoapFault $soapFault)
  23.  
  24. {
  25.  
  26. print "Zapytanie XML: " . $client->__getLastRequest() . "\n\n";
  27.  
  28. print "Odpowiedz XML: " . $client->__getLastResponse() . "\n\n";
  29.  
  30. print "SoapFault: " . print_r($soapFault, true). "\n\n";
  31.  
  32. }


i to zwraca mi ten numer ( 4130080053361 ) . i moje pytanie teraz jest takie: Jak teraz ten numer przypisać do osobnej zmiennej ? wstydnis.gif
klocu
W takim wypadku nie ma sensu stosować zapisu
  1. $result = $client->listNadanie($data);
  2. foreach ($result as $key=>$value)
  3. {
  4. echo $value->nrPrzesylki."\n";
  5. echo "\n";
  6. }


z tego względu, że: jeśli nie wykona się $client->listNadanie($data); to prawdopodobnie klasa poczęstuje cie wyjątkiem który obsługujesz; nie ma tu najmniejszej potrzeby używania foreach'a bo nie musisz pobierać wszystkich rekordów tylko wybrane; znasz strukturę wieć nadal nie musisz skanować wszystkich obiektów; klasa zwraca ci stdClass więc możesz się do nich odwoływać jak do obiektów.

Cytat
Jak teraz ten numer przypisać do osobnej zmiennej ?

Choćby tak:
  1. $result = $client->listNadanie($data);
  2.  
  3. $numerNadania = $result->result->nrPrzesylki;
  4. $nadawcaEmail = $result->result->nadawca->emailKontakt;

oczywiście obudowując to blokiem try{} catch() {}, który już masz.

Dobrze odczytałem istotę pytania?
sci201
Tak dokładnie o to mi chodziło smile.gif teraz mogę wyciągnąć i odrazu wygenerować list przewozowy. Dziękuje za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.