Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zamienic znak z tablicy na liczbe?
Forum PHP.pl > Forum > Przedszkole
webspy
Mam tablice w postaci:
  1. $strony = $ile[0][$s];

i chciałbym zrobic petle:
  1. for( $x = 0, $x <= $strony; $x++ ){
  2.  
  3. echo "$x";
  4.  
  5. }


TYlko ze zmienna $strona ma chyba inny typ i nie chce dzialac. moge prosic o pomoc??
zmienna $strona to np "4" z tablicy
strife
Hej,

Wpierw przeprowadź prostą diagnostykę i sprawdź, czy aby na pewno zmienna $strony nic nie zwraca, możesz to zrobić prostym kodem:

  1. echo '<pre>';
  2. var_export($strony);
  3. echo '</pre>';


Tak swoją drogą lepiej poruszać się po tablicach konstrukcją foreach, ale oczywiście nie wiem co chcesz uzyskać, więc tymczasowo zastosuj się do wskazówki powyżej.

Pozdrawiam.
Mustava
Może:
  1. $y=$strony*1;
webspy
po sprawdzeniu dostełem coś takiego
'4'

Chciałbym poprostu aby pętla powtarzała się tyle ile wczytam z tablicy czyli np 4

  1. (
  2. [0] => Array
  3. (
  4. [0] => 2
  5. [1] => 3
  6. [2] => 4
  7. [3] => 4
  8. [4] => 2
  9. [5] => 3
  10. [6] => 4
  11. [7] => 4
  12. )
  13.  
  14. [1] => Array
  15. (
  16. [0] => 2
  17. [1] => 3
  18. [2] => 4
  19. [3] => 4
  20. [4] => 2
  21. [5] => 3
  22. [6] => 4
  23. [7] => 4
  24. )
  25.  
  26. )

I chce otrzymać ostatnią liczbę tablicy czyli to 4 i zrobić pętle powtarzającą się "4" razy

strife
  1. $ile = 4; // ile razy ma się powtarzać ta pętla
  2.  
  3. for ($i = 0; $i < $ile $i++) {
  4. foreach ($tablica as $v) { // jednak tutaj wartosc jest kolejną tablica
  5. foreach ($v as $klucz => $wartosc) {
  6. echo $klucz . ' => ' . $wartosc . "<br />"; // hm ..
  7. }
  8. echo "<hr />";
  9. }
  10. }


Piszę z palca nie wiem czy będzie działać, oczywiście zmienna $tablica to Twoja $strony. Może napisz dokładnie co chcesz uzyskać krok po kroku bo trochę strzelam w ciemno, czemu to ma służyć?

Acha, ostatni element tablicy możesz uzyskać poprzez array_pop.

Pozdrawiam
webspy
Tylko właśnie nie wiem ile razy ma się powtarzać ta pętla bo to $ile właśnie mam wziąć z tablicy,
Wczytuję z tablicy ostatnią wartość czyli np będzie to 2 i właśnie 2 razy pętla się powtórzy.

Problem polega na tym że to co wczytam z tablicy to znak 4 a ja chciałbym żeby mi to odczytywało jako liczba 4 bo jeśli zrobię warunek $x <= $strona to zmienną $strona rozpoznaje jako 0 bo to chyba dla php znak a nie liczba 2.

Mam coś takiego:
  1. preg_match_all( '#<span>([0-9])</span>#s', $strona, $ile);
z tego mam tablicę, wczytuję sobie wartość z tablicy
  1. $strony = $ile[0][2];
i teraz chciałbym zrobić pętle która się powtórzy właśnie tyle razy ile wczytałem z tablicy
  1. for( $x = 0, $x <= $strony; $x++ )
no i wszystko by grało tylko że ta wartość $strona rozpoznawana jest jako 0, może trzeba ją jakość konwertować na liczbę a nie znak. jak wezmę echo "$strona"; to wyświetla 4 ale jak już dam do pętli to jest 0.
bastard13
masz:
  1. for( $x = 0, $x <= $strony; $x++ )

a powinno być:
  1. for( $x = 0; $x <= $strony; $x++ )

tzn. masz przecinek, a powinien być średnik.
A tak na marginesie to zawsze możesz rzutować zmienną na inny typ lub użyć funkcji intval().
  1. $liczba=intval($strona);
  2. //lub
  3. $liczba=(integer)$strona;
webspy
Nie działa ta konwersja na liczbe, nie wiem co może być grane.
Może podam cały kod:
  1. <?
  2. $curl = curl_init();
  3. //Inicujemy curl
  4.  
  5. curl_setopt($curl, CURLOPT_URL, 'http://allegro.pl/show_user_auctions.php?uid=9915110');
  6. //pobieramy dane z "http://www.lfsworld.net/?win=stats&racer=rafal612b2"
  7.  
  8. curl_setopt($curl, CURLOPT_REFERER, "http://www.google.pl/");
  9. //ustawiamy refferer na www.google.pl (niektóre strony mają zabezpieczenia
  10.  
  11. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  12. //podążamy za ewentualnym przekierowaniem
  13.  
  14. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  15. //wyniku nie wyświetlamy a zapisujemy do zmiennej co ułatwia prace nad nim
  16.  
  17. curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
  18. //ustawiamy useragent (niektóre strony mają zabezpieczenia)
  19.  
  20. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  21. //Maxymalny czas połączenia ze stroną
  22.  
  23. curl_setopt($curl, CURLOPT_HEADER, 0);
  24. //nie chcemy dołączać nagłówka
  25.  
  26. $strona = curl_exec($curl);
  27. //uruchamiamy skonfigurowanego curla
  28.  
  29. curl_close($curl);
  30. //zamykamy
  31. preg_match_all( '#<span>([0-9])</span>#s', $strona, $ile);
  32.  
  33. $elementy=count($ile[0]);
  34. $s = $elementy-1;
  35. $strony = $ile[0][$s];
  36. echo "$strony";
  37. ##
  38. $liczba=intval($strony);
  39. //lub
  40. $liczba=(integer)$strony;
  41.  
  42. for( $x = 0; $x <= $liczba; $x++ ){
  43.  
  44. echo "$x"; //tu powinno pokazac 01234 a wyswietla tylko 0
  45.  
  46. }
  47.  
  48.  
  49. ?>
bastard13
wrzuć sobie:
  1. echo $ile[0][$s].'<br />';

i napisz co ci wyrzuca.
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.