Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] string -> array
lunter
post
Post #1





Grupa: Zablokowani
Postów: 64
Pomógł: 0
Dołączył: 29.04.2004

Ostrzeżenie: (60%)
XXX--


Jak najszybciej i najprosciej ze stringa stworzyc tablice elementow jedno-bajtowych questionmark.gif

Przyklad:
$s='abcdefgh'; -> $a=array('a','b','c','d','e','f','g','h');


Probowalem tak jak w JS ( a=s.split('') ), czyli $a=explode('',$s). Niestety cos mi nie chce dzialac.

Czy da sie to zrobic bez uzywania 'for'/'while' questionmark.gif

Ten post edytował lunter 11.07.2005, 12:00:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


array_split


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


dr_bonzo - takowej funckji nie ma tongue.gif Chyba raczej str_split" title="Zobacz w manualu PHP" target="_manual


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
bendi
post
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Voila winksmiley.jpg
  1. <?
  2. $s='abcdefgh';
  3. for( $i=0; $i<strlen($s); $i++ )echo $s[$i].'<br>';
  4. ?>

A str_split" title="Zobacz w manualu PHP" target="_manual jest dostępne dopiero w php 5

Ten post edytował bendi 11.07.2005, 12:20:53


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Null: tak, po prostu:
- otworzylem manuala
- szukaj: string; F3, ENTER
- szukaj: array, F3 => znalazlo str_split
i z rozpedu wpisalem array zamiast str smile.gif
oczywiscie przebieglo to ze 3 razy szybciej tongue.gif
--------------
a to w ramach kanpani propagandowej na rzecz upowszechnienia php5:
Cytat
A str_split jest dostępne dopiero w php 5

-->
str_split jest niedostepne w starej wersji php (4 i nizej)
smile.gif

Ten post edytował dr_bonzo 11.07.2005, 12:45:24


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




w manualu jest:
  1. <?php
  2.  
  3. $s = 'abcde';
  4. $tab = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
  5.  
  6. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Liko
post
Post #7





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


Można też z PHP_Compact:
  1. <?php
  2. /**
  3.  * Replace str_split()
  4.  *
  5.  * @category php
  6.  * @package  PHP_Compat
  7.  * @link http://php.net/function.str_split
  8.  * @author Aidan Lister <aidan@php.net>
  9.  * @version  $Revision: 1.14 $
  10.  * @since  php 5
  11.  * @require  php 4.0.0 (user_error)
  12.  */
  13. if (!function_exists('str_split')) {
  14. function str_split($string, $split_length = 1)
  15. {
  16. if (!is_scalar($split_length)) {
  17. user_error('str_split() expects parameter 2 to be long, ' .
  18. gettype($split_length) . ' given', E_USER_WARNING);
  19. return false;
  20. }
  21.  
  22. $split_length = (int) $split_length;
  23. if ($split_length < 1) {
  24. user_error('str_split() The length of each segment must be greater than zero', E_USER_WARNING);
  25. return false;
  26. }
  27.  
  28. preg_match_all('/.{1,' . $split_length . '}/s', $string, $matches);
  29. return $matches[0];
  30. }
  31. }
  32. ?>
Go to the top of the page
+Quote Post
kszychu
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Ależ kombinujecie...... Przecież, tak jak napisał bendi, stringa można traktować jak tablicę i odwoływać się do jego kolejnych elementów jak do elementów tablicy.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
cube
post
Post #9





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 9.03.2005

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


Mam nadzieje że poniższy artykuł ma sie tak do php jak do C++
http://www.cprogramming.com/tips/showTip.p...count=30&page=0 [ odnośnie posta bendi ]

Ten post edytował cube 11.07.2005, 15:33:53
Go to the top of the page
+Quote Post
kszychu
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. <?php
  2. $s='abcdefgh';
  3. for( $i=0, $max = strlen($s); $i<$max; $i++ )echo $s[$i].'<br>';
  4. ?>


Prosta modyfikacja przykładu zaprezentowanego przez bendi. Nie zmienia to jednak faktu, że odpowiedź na pytanie zawarte w temacie pozostaje niezmienna.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
tiraeth
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Tak jak mówią niektórzy, do stringa można odwoływać się jak do tablicy smile.gif

  1. <?php
  2. $zmienna = 'abcdefghijklmnopqrstuvwxyz';
  3.  
  4. while($i < strlen($zmienna))
  5. {
  6.  $arr[] = $zmienna[$i];
  7.  $i++;
  8. }
  9.  
  10. print_r($arr);
  11. ?>


Czyli EOT, ajt?
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:06