Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak rozbić wyniki z tablicy?
Forum PHP.pl > Forum > Przedszkole
red9skull
Mam następujący problem: mam pewną tablicę, która ma powiedzmy 800 indeksów. I chciałbym indeksy, np. od 200 do 400 wyrzucić do osobnej tablicy. Da radę tak zrobić? I jeśli się da to jak?
kefirek
  1. $tablica = array('test', 'test1', 'test2');
  2. $new_tab = array();
  3. while (list ($klucz, $wartosc) = each ($tablica)) {
  4. if($klucz >=200 AND $klucz <= 400){
  5. $new_tab[] = $wartosc;
  6. }
  7. }
  8. print_r($new_tab);
red9skull
Ale czy indeksy kopiują się z wartościami im przypisanymi? Bo coś nie działa.
nospor
odrobina myslenia....
$new_tab[$klucz] = $wartosc;
juz sie kopiują?
red9skull
Niestety mają mnie w dupie blinksmiley.gif
nospor
zaraz w pupie będzie miał cię moderator i zamknie ci temat za takie odzywki...

pokaż dokładnie kod jaki spłodziłeś i pokaż dokladnie co ci sie wyswietla
darko
  1. // Twoja tablica, np.
  2. $input = range(0,800,1);
  3. $output = array_slice($input,200,201);
  4. print_r($output);


http://pl.php.net/manual/en/function.array-slice.php
red9skull
Cytat(darko @ 17.11.2009, 14:44:42 ) *
  1. // Twoja tablica, np.
  2. $input = range(0,800,1);
  3. $output = array_slice($input,200,201);
  4. print_r($output);


http://pl.php.net/manual/en/function.array-slice.php


Też nie działa. Kod wygląda mniej więcej tak:
  1. $tablica = preg_split("/\n/", $page);
  2. $output = array_slice($tablica, 20, 40);
  3.  
  4. $ranstr = $output[0];
  5. $tablica2 = explode("<", $ranstr);
  6. $znajomiq = explode(">", $tablica2[1]);
  7.  
  8.  
  9. imagefttext($im, 10, 0, 10, 90, $blue, $font_file, $znajomiq[0]);


Gdzie $page to strona www, a $tablica to $page podzielona na linijki (które są przypisane indeksom).
darko
Cytat
Gdzie $page to strona www


chyba zawartość strony www(?), a nie sam adres? :|

Pokaż jeszcze wartości zmiennych $im, $blue, $font_file
red9skull
  1. $im = imagecreatefrompng('./red9skull.png');
  2.  
  3. //kolory, obrazki, czcionka
  4. $bialy=ImageColorAllocate($im, 255, 255, 255);
  5. $red=ImageColorAllocate($im, 255, 0, 0);
  6. $blue=ImageColorAllocate($im, 0, 255, 255);
  7. $font_file = './visitor.ttf';
darko
Cytat
$font_file = './visitor.ttf';


masz taki font we właściwym miejscu względem skryptu?

daj jeszcze print_r($im) - jak będzie #resource i masz font we właściwym miejscu - to nie wiem smile.gif
red9skull
wszystko jest ok, przykład: http://board.info.pl/sygna/ to jest ten skrypt, jak widzisz obrazek się wyświetla i czcionka też.
darko
Cytat
$output = array_slice($tablica, 20, 40);
$ranstr = $output[0];
$tablica2 = explode("<", $ranstr);


nie wiem czego konkretnie szukasz pomiędzy tagami < i >, ale body ani html to nie będzie, bo nie odczytujesz zawartości strony od początku (
Cytat
$output = array_slice($tablica, 20, 40);
). Napisz w ogóle co Ci nie działa, konkretnie jaki jest komunikat błędu.
red9skull
Podałem Ci linka do skryptu na żywo - jak sam widziałeś nie ma błędu tylko nic nie zwraca. A z tym "<" i ">" to dałem dla przykładu, żeby coś wyświetlić, bo w każdej linijce są te znaczniki
darko
nie wiem, to może leć po kolei print_r:

$output
$ranstr
$tablica2
$znajomiq

i sprawdź, może któraś zmienna jest pusta, bo nie znalazłeś tego, czego szukałeś, a może w imagefttext($im, 10, 0, 10, 90, $blue, $font_file, $znajomiq[0]); próbujesz pisać poza obrazkiem (nie wiem jak to wygląda w praktyce i czy to możliwe)?

Pozdrawiam!
red9skull
Cytat(darko @ 17.11.2009, 16:00:07 ) *
a może w imagefttext($im, 10, 0, 10, 90, $blue, $font_file, $znajomiq[0]); próbujesz pisać poza obrazkiem (nie wiem jak to wygląda w praktyce i czy to możliwe)?


To na pewno nie przez to.
  1. <?php print_r($output); ?>

Zwraca:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [22] => [23] => [24] => [25] => [28] => [29] => [30] => [31] => [39] => )

  1. <?php print_r($tablica2); ?>

Array ( [0] => )

  1. <?php print_r($znajomiq); ?>

Array ( [0] => )

  1. <?php print_r($ranstr); ?>

Pusta strona.
darko
to jeszcze print_r($tablica) oraz print_r($page) - to będzie gdzieś tutaj
red9skull
$page - pokazuje się biała strona ale w <title> jest tytuł strony $page

$tablica - to samo ale przez 1 sek. widać zawartość tablicy, zobacz sam: http://board.info.pl/sygna/
darko
to podejrzyj co masz w źródle strony i już chyba sam sobie poradzisz
red9skull
dzięki wielkie ;]

Wczoraj zapomniałem kliknąć Ci "Pomógł" dlatego dzisiaj kliknąłem we wszystkie twoje posty w tym temacie smile.gif Teraz mam problem z tablicą $output. Podzieliłem ją na w ten sposób:
  1. $output = array_slice($tablica, 612, 704);

I rzeczywiście dzieli ją od 612 pozycji ale.. do końca. Nie zatrzymuje się na 704 indeksie. Co zrobiłem źle?
thek
3 parametr to długość tablicy, a nie jej ostatni indeks. Tak więc próbujesz zrobić 704-elementową tablicę od indeksu 612, więc robi do końca smile.gif Powinno być nie 704, ale 704-612, czyli 98.
red9skull
Dzięki! Źle przeczytałem manuala smile.gif Jeszcze raz dzięki biggrin.gif

Jeszcze jedno smile.gif Jak z tej tablicy $output wywalić co szósty indeks do osobnej tablicy? biggrin.gif

Już sobie poradziłem takim oto kodem:
  1. for($i=0;$i<sizeof($output);$i++){
  2. if(($i+1)%6==0){
  3. $tab2[]=$output[$i];
  4. }
  5. }


Pozdrawiam ^^
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-2024 Invision Power Services, Inc.