[PHP] Elke letter van string in een array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Ik kan wel een heel verhaal gaan schrijven, maar hoe krijg ik de string "test" als volgt in een array:

code:
1
2
3
4
5
6
7
Array
(
    [0] => t
    [1] => e
    [2] => s
    [3] => t
)


Dit doe ik nu doormiddel van een spatie tussen elke letter, maar dat lijkt mij niet echt een oplossing. Ik heb de PHP manual doorgespit, maar geen resultaat.

Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Een string kun je in PHP benaderen als een char array.

PHP:
1
2
3
4
$bla = "Hoi";
for ($i = 0; $i < strlen($bla); $i++) {
    echo $bla[$i];
}

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
PHP:
1
2
3
4
5
6
7
$string = "test";
$length = strlen($string);
$array = array();
for($i=0; $i<$length; $i++){
 $array[] = $string{$i};
}
print_r($array);
prototype schreef op maandag 05 maart 2007 @ 12:00:
Een string kun je in PHP benaderen als een char array.

PHP:
1
2
3
4
$bla = "Hoi";
for ($i = 0; $i < strlen($bla); $i++) {
    echo $bla[$i];
}
Moet je niet bij een string accolades gebruiken in plaats van blokhaken. In ieder geval hebben ze dat 3x gewijzigd ofzo, dus ik weet het niet precies meer :p
Note: They may also be accessed using braces like $str{42} for the same purpose. However, using square array-brackets is preferred because the {braces} style is deprecated as of PHP 6.
Wel square brackets dus :)

[ Voor 74% gewijzigd door mithras op 05-03-2007 12:08 ]


Acties:
  • 0 Henk 'm!

Verwijderd

in php5 kan je gebruik maken van str_split()

Acties:
  • 0 Henk 'm!

  • Stephan224
  • Registratie: Maart 2002
  • Laatst online: 31-10-2022
SubString gebruiken mss een oplossing? :*)

Software Developer, checkout my bitcoin software at my website www.haasonline.com (Trade Bots and more...)


Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Meneerik en Stephan224, waarom zou je in hemelsnaam een string die al in de juiste datastructuur is nog na willen bewerken? ;)

Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Zoals gezegd kun je een string al als array behandelen.
Je kunt een string ook splitsen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$s = 'test';
preg_match_all('/./', $s, $a);
$a = $a[ 0 ];

/* $a bevat nu:
Array
(
    [0] => t
    [1] => e
    [2] => s
    [3] => t
)
*/

[ Voor 22% gewijzigd door Icelus op 05-03-2007 12:19 ]

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • Stephan224
  • Registratie: Maart 2002
  • Laatst online: 31-10-2022
prototype schreef op maandag 05 maart 2007 @ 12:11:
Meneerik en Stephan224, waarom zou je in hemelsnaam een string die al in de juiste datastructuur is nog na willen bewerken? ;)
Simpel, de TS vraagt om een string in een array te stoppen dus ik beantwoord slechts zijn/haar vraag. Ik ben ook van mening dat het efficienter is om de string als een array te behandelen, maar weet jij precies wat de TS ermee van plan is? :/

Software Developer, checkout my bitcoin software at my website www.haasonline.com (Trade Bots and more...)


Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Stephan224 schreef op maandag 05 maart 2007 @ 12:17:
[...]


Simpel, de TS vraagt om een string in een array te stoppen dus ik beantwoord slechts zijn/haar vraag. Ik ben ook van mening dat het efficienter is om de string als een array te behandelen, maar weet jij precies wat de TS ermee van plan is? :/
Indien de array niet equivalent in benadering is als de string, zelfs dan zouden er efficientere methoden zijn om dat alsnog te bewerkstelligen, b.v.:

PHP:
1
2
3
4
5
$bla = "blaat";
$arr = array();
for ($i = 0; $i < strlen($bla); $i++) {
    $arr[$i] = $bla[$i];
}

Acties:
  • 0 Henk 'm!

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04 12:44
Vet, ik wist helemaal niet dat het al te benaderen was als een array.

Weer wat geleerd, bedankt voor de oplossingen !

Acties:
  • 0 Henk 'm!

  • toost
  • Registratie: Januari 2002
  • Laatst online: 30-01 03:23
Maar nog simpeler is

code:
1
2
3
4
5
6
7
$string = "test";

for ($i = 0;$i <= strlen($string);$i++) {

echo $string{$i};

}


spuit11mode:
ow lol dit is dus al gezegd alleen dan met blok haken :P

[ Voor 21% gewijzigd door toost op 05-03-2007 14:02 ]

This space for rent. Serious inquiries only please.


Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

toost schreef op maandag 05 maart 2007 @ 14:00:
Maar nog simpeler is

code:
1
2
3
4
5
6
7
$string = "test";

for ($i = 0;$i <= strlen($string);$i++) {

echo $string{$i};

}
Spuit 11 voor jou.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Het is zelfs een foute spuit 11, want er wordt een iteratie teveel gedaan. ;)

{signature}

Pagina: 1