Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]array_slice i tablica tekstowa
Forum PHP.pl > Forum > Przedszkole
BoS_Kuna
Nie rozumie w php czegos takiego, jak damy np:
  1. <?php
  2. $tekst="Ala ma kota";
  3. ?>

to jest to tablica tekstowa:
  1. <?php
  2. $tekst[0]='A';
  3. $tekst[1]='l';
  4. $tekst[2]='a';
  5. ?>

... i tak dalej.

Jednak gdy chce uzyc tego rozumowania do swojej funkcji, to wyskakuje mi warning
Warning: array_slice() expects parameter 1 to be array, string given in (...)

  1. <?php
  2. /*funkcja obcina poczatek tekstu*/
  3. function koniec_millera($tekst, $ciag_startu){
  4.    $dlugosc_ogranicznika=strlen($ciag_startu);
  5.    $nowy_poczatek=strpos($tekst, $ciag_staru);
  6.    $tekst=array_slice($tekst, $ciag_staru+$dlugosc);
  7.    return $tekst;
  8. }
  9. ?>


Jak przekazac ciag tekstowy do funkcji by byl traktowany jako tablica pojedynczych znakow?
WojtasSP320
Nie wiem, czy działa, ale przynajmniej nie wywala blędu, sprawdź.
  1. <?php
  2. $text ='Ala ma kota';
  3. $tab = Array();
  4. $tab[] = $text;
  5. $cos = array_slice($tab,2);
  6. ?>


Edit: nie nie działa.

Zostaje ci tylko konwersja Str2Array przed wywoałniem array_slice:

  1. <?php
  2. $input = 'Ala ma kota';
  3. $output;
  4. for ($i=0;$i<strlen($input);$i++)
  5. {
  6.   $output[$i] = $input[$i];
  7. }
  8. ?>
BoS_Kuna
Cytat(WojtasSP320 @ 28.09.2008, 19:03:22 ) *
Nie wiem, czy działa, ale przynajmniej nie wywala blędu, sprawdź.
  1. <?php
  2. $text ='Ala ma kota';
  3. $tab = Array();
  4. $tab[] = $text;
  5. $cos = array_slice($tab,2);
  6. ?>


Niestety nie dziala, bledu faktycznie nie ma, ale wynik tego jest taki, ze zerowy element tablicy to caly tekst
Array ( [0] => Ala ma kota)
Mi chodzi, by kazda litera byla elementem tablicy.
melkorm
Fakt do string'a możesz się odwołać jak do tablicy ale nadal pozostaje stringiem smile.gif I arraya z niego na siłe nie zrobisz tongue.gif

tablice textu uzyskasz za pomocą tego:

  1. <?php
  2. $tekst = preg_split('//',$string, -1 , PREG_SPLIT_NO_EMPTY);
  3. ?>
tomm
a nie możesz interesującej cię częsci stringa wyciąć funkcją substr() ?
WojtasSP320
Cytat(BoS_Kuna @ 28.09.2008, 21:12:23 ) *
Niestety nie dziala, bledu faktycznie nie ma, ale wynik tego jest taki, ze zerowy element tablicy to caly tekst
Array ( [0] => Ala ma kota)
Mi chodzi, by kazda litera byla elementem tablicy.


Z kodu, który podałem ci wyżej możesz sobie zrobić funkcję do przerabiania stringa na tablicę i wywoływać np.: array_slice(str2array('Ala ma kota'),2,1);

Działa na 100%
BoS_Kuna
Cytat(WojtasSP320 @ 28.09.2008, 19:43:47 ) *
Z kodu, który podałem ci wyżej możesz sobie zrobić funkcję do przerabiania stringa na tablicę i wywoływać np.: array_slice(str2array('Ala ma kota'),2,1);

Działa na 100%

Widzę, dziękuje wszystkim za odpowiedzi smile.gif Wydaje mi się, że najprostrzym rozwiazaniem, bedzie te zaproponowane przez tomm'a, jednak porady melkorm'a i wojtasa są takze cenne ze wzgledow edukacyjnych.
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.