Eli jos mulla on string "keijo#risto#paulig", niin miten saisin muutettua ton yksiulotteiseksi taulukoksi tyyliin: $array[0]="keijo", $array[1]="risto" ja $array[2]="paulig" ?
stringi arrayksi
Riitta Väisänen <B
7309
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
Tulostaa:
Array
(
[0] => keijo
[1] => risto
[2] => paulig
)
Eikös explode ole tuohon parempa, split vain silloin kun tarvitaan monimutkasempaa.
Söimme vahingossa pizzaa merkkijonon sijasta.
Onko sillä jotain väliä kumpaa käyttää?
PHP:n manuaali sanoo näin
"preg_split(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to split(). If you don't require the power of regular expressions, it is faster to use explode(), which doesn't incur the overhead of the regular expression engine." http://fi.php.net/manual/fi/function.split.php
Muutenkin nuo säännölliset lauseet hitaita siksi parempi käyttää merkkijonon käsittelyyn tarkoitettuja functioita mikäli niillä saadaan sama tehtyä helposti.
Mutta yleensä harrastelijat tekevät PHP-scriptit sillä periaatteella että kunhan toimii sillä hyvä, tämä näkyy palvelimien turhana kuormana jne... sekä tietoturva-aukkoina. Hyvin pienellä vaivalla saa paremmamman ratkaisun.
Minä olen tosiaan php-koodauksessa aivan alkutaipaleella ja monesta asiasta aivan hukassa.
Tunnustan olevani vielä sillä tasolla, että hienoa jos homma edes toimii. Mutta eiköhän tämä tästä vielä suttaannu kun koko ajan oppii lisää.
En ole mikään php asiantuntija mutta tällainen voisi ehkäpä toimia.. (syntaksi voinee olla puissaan)
str = "keijo#risto#paulig";
arr = str.split("#", str);
jossa splitin ensimmäinen parametri on separaattori,
jolla splittaus tehdään.