Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dostęp do tablicy
Resurrection
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

Ostrzeżenie: (0%)
-----


Staram się dostać do tablicy...otrzymuje wartość null mimo że dane pwoinny się tam znajdować...może źle poruszam się po tablicy...więc pytanie jak dostać się do tego żeby wyciągnąć dane:
  1.  
  2. $dogetpostbuyformsdataforsellers_response = array(
  3. 'post-buy-form-data' => array(
  4. 'post-buy-form-id' => 3381748,
  5. 'post-buy-form-items' => array(
  6. 'post-buy-form-it-quantity' => 2,
  7. 'post-buy-form-it-amount' => 20.00,
  8. 'post-buy-form-it-id' => 972090662,
  9. 'post-buy-form-it-title' => 'Oferta testowa',
  10. 'post-buy-form-it-country' => 1,
  11. 'post-buy-form-it-price' => 10.00)
  12. )
  13. )
  14. )
  15. )

i teraz chcę dostać się np: do post-buy-form-it-title

  1. foreach($tablica as $row)
  2. {
  3. $row->{'post-buy-form-id'}; // to odczytuje poprawnie
  4. $row->{ 'post-buy-form-items'}->{'post-buy-form-it-title'};//tu otrzymuje null
  5. $row['post-buy-form-it-title']->{'post-buy-form-it-title'};//tutaj błąd odwołania
  6. }
Go to the top of the page
+Quote Post
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Raczej coś takiego

  1. foreach ($tablica as $row)
  2. {
  3. ...
  4. $row['post-buy-form-data']['post-buy-form-items']['post-buy-form-it-title'];
  5. }
Go to the top of the page
+Quote Post
Resurrection
post
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

Ostrzeżenie: (0%)
-----


Przy takim sosobie odwołania otrzymuje błąd

  1. Cannot use object of type stdClass as array in ....
  2.  
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #4





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


Pachnie mi to źle skonstruowaną tablicą.

Jednak gdy usilnie chcesz się dostać do tej wartości to używaj sobie funkcji:
print_r lub var_dump

Pomogą ci on określić jak na prawdę wygląda twoja tablica:

  1. $dogetpostbuyformsdataforsellers_response = array(
  2. 'post-buy-form-data' => array(
  3. 'post-buy-form-id' => 3381748,
  4. 'post-buy-form-items' => array(
  5. 'post-buy-form-it-quantity' => 2,
  6. 'post-buy-form-it-amount' => 20.00,
  7. 'post-buy-form-it-id' => 972090662,
  8. 'post-buy-form-it-title' => 'Oferta testowa',
  9. 'post-buy-form-it-country' => 1,
  10. 'post-buy-form-it-price' => 10.00)
  11. )
  12. )
  13. )
  14. );
  15.  
  16. // Oferta testowa
  17. var_dump($dogetpostbuyformsdataforsellers_response['post-buy-form-data'][0]['post-buy-form-items'][0]['post-buy-form-it-title']);


lub

  1. foreach ($dogetpostbuyformsdataforsellers_response as $row) {
  2. var_dump($row[0]['post-buy-form-items'][0]['post-buy-form-it-title']);
  3. }


Ten post edytował mstraczkowski 14.05.2013, 13:30:14
Go to the top of the page
+Quote Post
Szymciosek
post
Post #5





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


  1. $tablica = array(
  2. 'post-buy-form-data' => array(
  3. 'post-buy-form-id' => 3381748,
  4. 'post-buy-form-items' => array(
  5. 'post-buy-form-it-quantity' => 2,
  6. 'post-buy-form-it-amount' => 20.00,
  7. 'post-buy-form-it-id' => 972090662,
  8. 'post-buy-form-it-title' => 'Oferta testowa',//tutaj
  9. 'post-buy-form-it-country' => 1,
  10. 'post-buy-form-it-price' => 10.00)
  11. )
  12. )
  13. )
  14. );
  15.  
  16. foreach ($tablica as $row)
  17. {
  18. var_dump($row[0]['post-buy-form-items'][0]['post-buy-form-it-title']);
  19. }



Trochę masz namieszane z tą tablicą, którą sobie stworzyłeś.
Go to the top of the page
+Quote Post
Resurrection
post
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

Ostrzeżenie: (0%)
-----


To nie ja sobie stworzyłem takiego potwora to Allegro i jego WebApi :-) ...a to jest tylko część tej struktury :-)

po zastosowaniu vardump:
  1. var_dump($dogetpostbuyformsdataforsellers_response['post-buy-form-data'][0]['post-buy-form-items'][0]['post-buy-form-it-title']);


jako wynik otrzymuje wartość : NULL

jednak upieram się, że tam musza być dane gdyż ta transakcja została wykonana i poza tym w dalszej części tej struktury tam gdzie jest pojedyncze zagnieżdżenie podaje wszystkie dane, natomiast tam gdzie zagnieżdżenie jest jak przy post-buy-form-it-title otrzymuje wartości null . Te inne wartości to np: adres wysyłki, który klient musiał podać.
Go to the top of the page
+Quote Post
Adi32
post
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Allegro zwraca tablicę obiektów.
Go to the top of the page
+Quote Post
Resurrection
post
Post #8





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

Ostrzeżenie: (0%)
-----


więc spróbowałem tak

  1.  
  2. $row->{'post-buy-form-data'}['post-buy-form-it-title'] //null
  3.  
  4. $row->{'post-buy-form-data'}['post-buy-form-it-title'][0] // null


gdzie popełniam błąd ?
Go to the top of the page
+Quote Post
Adi32
post
Post #9





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Wklej wynik funkcji:

  1. echo '<pre>';
  2. var_dump($row);
  3. echo '</pre>';
Go to the top of the page
+Quote Post
Resurrection
post
Post #10





Grupa: Zarejestrowani
Postów: 82
Pomógł: 1
Dołączył: 23.02.2012

Ostrzeżenie: (0%)
-----


trzeba było odrazu przeanalizować całą strukturę za pomocą var_dump zamiast marudzić na forum ale może się komuś przyda :-)

Kod
$row->{'post-buy-form-items'}[0]->{'post-buy-form-it-title'}


dziękuję wszystkim za pomoc. Zamykam temat

Ten post edytował Resurrection 14.05.2013, 15:10:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:57