Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablice - jak się dobrać do zawartości
Forum PHP.pl > Forum > Przedszkole
emantuch
Witam ,
mam taką oto tablicę, jak mogę dobrać się do jej zawartości?
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1500
[1] => 1
[2] => 1
[3] => 2000
[4] => 1800
)

)

Próbowałem przez $aray2 = $aray[0]
itd.. ale niestety to jest chyba zła droga bo nie działa.
Dzięki z góry za pomoc
KsaR
  1. foreach ($tablica[0][0] as $v) echo $v;

$tablica[0][0][0]; # 1500
...
$tablica[0][0][4]; # 1800
bobek358
  1. $tablica[0][0][0]

wyświetli 1500

  1. $tablica[0][0][1]

wyświetli 1

  1. $tablica[0][0][4]

wyświetli 1800

itd
emantuch
Dzięki za blyskawiczne odpowiedzi! biggrin.gif

Tylko nie rozumiem jednej rzeczy.

echo $wynik3[0][0][0]; - zwraca mi znak " < "
echo $wynik3[0][0][4]; - zwraca 0

Kod
    foreach ($tablica[0][0] as $v) echo $v;
- Blank Page..
KsaR
Cytat(emantuch @ 23.09.2015, 15:16:28 ) *
Dzięki za blyskawiczne odpowiedzi! biggrin.gif

Tylko nie rozumiem jednej rzeczy.

echo $wynik3[0][0][0]; - zwraca mi znak " < "
echo $wynik3[0][0][4]; - zwraca 0

Albo złą zmienna podpinasz. Albo zły przykład dales tongue.gif

Array
(
[0] => Array
(
[0] => Array
(
[0] => 1500
Czyli teraz skasujmy wszelkie (, array, i =>
Mamy [0][0][0]; i pod tym indeksem wedlug twojego przykladu jest 1500 wink.gif
--
Co do wyzejszej edycji > jak blank to napewno zla.
smile.gif
emantuch
To krok po kroku:
1.
  1. echo '<pre>';
  2. print_r ($wynik3);
  3. echo '</pre>';

daje mi:
Array
(
[0] => Array
(
[0] => Array
(
[0] => 1500
[1] => 1
[2] => 1
[3] => 2000
[4] => 1800
)

)

2. foreach ($tablica[0][0] as $v) echo $v; daje Blank

- Kodu mam zaledwie 7 lini jeszcze nie ma bałaganu,
KsaR
http://sandbox.onlinephpfunctions.com/code...94ee8c083a871ca
^ kliknij execute code i się nie kłóć, bo to ty coś źle robisz. smile.gif
emantuch
Nie kłócę się i wiem że robię coś źle dlatego pytam tutaj smile.gif i informuję, iż to mi nie działa pisząć co robię krok po kroku

  1. $c=preg_match_all('/<strong class="price" data-sorter="(.+?)"/', $result, $wynik3);
  2. print_r ($wynik3);


dostaję tablicę - i dalszą część historii znacie.
Pytanie co mogę robić nie tak w tych 3 liniach kodu?questionmark.gif?


Serwer zwraca: PHP Warning: Invalid argument supplied for foreach()
KsaR
  1. var_dump(isset($wynik3[0][0][0]), $wynik3[0][0][0]);

Pokaz co zwraca, za zmienna $wynik3;
Ps. Podmieniles w tym foreach zmienna $tablica na $wynik3 questionmark.gif
emantuch
otrzymuje:
bool(true) string(1) "<"


Tak podmieniłem smile.gif

Panowie, bo nie rozumiem jednej rzeczy,
dlaczego jeżeli $wynik3 to tablica którą tutaj wrzuciłem
i jeżeli wykonuję wasze polecenia i tam sam $wynik3 nie zwraca nic to dlaczego tak się dzieje?

Ogólnie coś tam już w PHP robiłem no i takie coś mi się wydarzyło 1 raz, dlatego szukam pomocy smile.gif


Czy nie powinno być tak że :
$wynik3 = Array ( [0] => Array ( [0] => Array ( [0] => 1500 [1] => 1 [2] => 1 [3] => 2000 [4] => 1800 ) )
$wynik3[0] = Array ( [0] => Array ( [0] => 1500 [1] => 1 [2] => 1 [3] => 2000 [4] => 1800 )
$wynik3[0][0] = Array ( [0] => 1500 [1] => 1 [2] => 1 [3] => 2000 [4] => 1800

To możliwe żeby tablica z preg_match_all źle się tworzyła? Bo np. brakuje jednego zamknięcia nawiasu...

Szukam już gdzie mogę nie wiem co może być
KsaR
Malo mozliwe lub i nie mozliwe.
Poza tym ty printujesz ta tablice tongue.gif.
Byc moze preg_* zlapal coś złego.

Jesli masz mozliwosc to dodaj przed URL strony view-source:tu_link
bo mozliwe ze tylko tak ci w przegladarce pokazalo.

Lub zrob cos typu, jesli nie pokazalo ci samo kodu zrodlowego:

  1. echo '<pre>', htmlspecialchars(print_r($wynik3, true), ENT_QUOTES, 'UTF-8'), '</pre>';

I pokaz ponownie co zwraca. To zamieni rozne znaki np. > na & gt ; (bez spacji) przez co bedzie widoczny jako znak a nie kod do wykonania.
emantuch
Dzięęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęęki! Lecę dalej z tematem.
Wynik:
Array
(
[0] => Array
(
[0] => <strong class="price" data-sorter="10"
[1] => <strong class="price" data-sorter="250"
)

[1] => Array
(
[0] => 10
[1] => 250
)

)
A więc mój preg* zamiast:
$c=preg_match_all('/<strong class="price" data-sorter="(.+?)"/', $result, $wynik3);
Wygląda teraz tak:
$c=preg_match_all('/<strong class="price" data-sorter="(.+?)">/', $result, $wynik3);

I działa jak należy biggrin.gif

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.