Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]array_slice i tablica tekstowa, Jak zrobic by ciag tekstowy byl uwazany za tablice znakow?
BoS_Kuna
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.01.2006

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


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?
Go to the top of the page
+Quote Post
WojtasSP320
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

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


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. ?>


Ten post edytował WojtasSP320 28.09.2008, 20:17:14
Go to the top of the page
+Quote Post
BoS_Kuna
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.01.2006

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


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.
Go to the top of the page
+Quote Post
melkorm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Fakt do string'a możesz się odwołać jak do tablicy ale nadal pozostaje stringiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) I arraya z niego na siłe nie zrobisz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

tablice textu uzyskasz za pomocą tego:

  1. <?php
  2. $tekst = preg_split('//',$string, -1 , PREG_SPLIT_NO_EMPTY);
  3. ?>


Ten post edytował melkorm 28.09.2008, 20:30:48
Go to the top of the page
+Quote Post
tomm
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


a nie możesz interesującej cię częsci stringa wyciąć funkcją substr() ?
Go to the top of the page
+Quote Post
WojtasSP320
post
Post #6





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

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


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%
Go to the top of the page
+Quote Post
BoS_Kuna
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.01.2006

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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.
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: 16.09.2025 - 08:45