Poner cadena en un array (PHP)

11 views
Skip to first unread message

Andres Pinzon

unread,
Mar 21, 2006, 3:49:16 PM3/21/06
to sl-...@googlegroups.com
Hola,
necesito poner cada una de las letras de una cadena en un artray así:

$cadena = "AGCT";
$arrayDeCadena (
[0] => A
[1] => G
[2] => C
[3] => T
)
En PHP 5 existe la función str_split que lo hace de una manera muy
sencilla. Sin embargo uso la versión 4.3.4.
Así que lo hice de la siguiente manera:

$arrayDeCadena = preg_split('//', $secuencia, -1, PREG_SPLIT_NO_EMPTY);

Lo cual da lo siguiente:
$arrayDeCadena (
[0] =>
[1] =>
[2] => A
[3] => C
[4] => G
[5] => T
)

No tengo ni idea de donde vienen los dos primeros caracteres vacios (0 y 1).
¿Alguien tiene idea de cómo lo puedo hacer de una mejor manera?
--
---------
Andrés Pinzón [http://www.andrespinzon.com]
Bioinformatics Center, Colombia EMBnet node
Biotechnology Institute - National University of Colombia
http://bioinf.ibun.unal.edu.co
Tel +57 3165000 ext 16961 Fax +571 3165415
----------

Camilo Uribe

unread,
Mar 21, 2006, 4:53:50 PM3/21/06
to sl-...@googlegroups.com
$evento = array ("F", "L", "I", "S", "O", "L");
print_r($evento);

Array
(
[0] => F
[1] => L
[2] => I
[3] => S
[4] => O
[5] => L
)


--
http://www.el-directorio.org
El sitio de linux y el Software Libre en Colombia

Andres Pinzon

unread,
Mar 21, 2006, 5:04:35 PM3/21/06
to sl-...@googlegroups.com
On 3/21/06, Camilo Uribe <camilo...@gmail.com> wrote:
>
Gracias camilo por tu respuesta pero ...

> $evento = array ("F", "L", "I", "S", "O", "L");
> print_r($evento);
>
> Array
> (
> [0] => F
> [1] => L
> [2] => I
> [3] => S
> [4] => O
> [5] => L
> )
>

eso seria en el caso en que yo pudiera crear la variable $evento de esa manera.
La cuestión es que tengo alrededor de 1000 secuencias que son
asignadas dinámicamente a $cadena. Cada secuencia varia en longitud
(entre 250 y 1600 residuos cada una), dichas secuencias las tomo de
una BD y las voy asignando a la variable que despues necesito
convertir en array etc.. etc.. etc...:
No sé si me explico bien. ;-)

Camilo Uribe

unread,
Mar 21, 2006, 5:30:02 PM3/21/06
to sl-...@googlegroups.com
Entre los comentarios que la gente hace sobre la funcion str_split en
la documentacion oficial de php hay varias implementaciones de esta
funcion para versiones de php anteriores a la 5:

http://www.php.net/manual/es/function.str-split.php

Ademas se encuentra implementada en el paquete PHP_Compat de PEAR
http://pear.php.net/package/PHP_Compat

On 3/21/06, Andres Pinzon <andres...@gmail.com> wrote:
>
> On 3/21/06, Camilo Uribe <camilo...@gmail.com> wrote:
> >
> Gracias camilo por tu respuesta pero ...

Jejeje, respondi muy rapido y hasta que envie el correo me di cuenta
que lo mas probable es que no pudieras definir el arreglo de esa
forma.

Diego Mauricio Paz Carrillo

unread,
Mar 21, 2006, 11:54:16 PM3/21/06
to sl-...@googlegroups.com
Hola

Tal vez esto te sirva de solucion:

<?php

$data = "hola mundo";

$ex = str_split($data);

print_r($ex);


function str_split($str,$split_lengt=1){

       $cnt = strlen($str);

              for ($i=0;$i<$cnt;$i+=$split_lengt)
                $rslt[]= substr($str,$i,$split_lengt);

        return $rslt;
}

?>


El día 21/03/06, Camilo Uribe <camilo...@gmail.com> escribió:

Andres Pinzon

unread,
Mar 22, 2006, 9:43:12 AM3/22/06
to sl-...@googlegroups.com
On 3/21/06, Diego Mauricio Paz Carrillo <dim...@gmail.com> wrote:
> Hola
>
> Tal vez esto te sirva de solucion:
Gracias diego, pero el problema es que la función str_split es de PHP5
y estoy trabajando con la v 4.3.4 ;-)

Manuel Alejandro Cerón Estrada

unread,
Mar 22, 2006, 11:49:16 AM3/22/06
to sl-...@googlegroups.com
Andrés, Diego te está mostrando cómo implementar la función str_split.

<no-flame>

Por cierto, la solución al problema si el lenguaje fuera Python es simplemente:

list("Cualquier Cadena")

:P

</no-flame>


El 22/03/06, Andres Pinzon<andres...@gmail.com> escribió:


--
· Manuel Alejandro Cerón Estrada
· cero...@gmail.com
· http://ceronman.blogspot.com

Andres Pinzon

unread,
Mar 22, 2006, 2:36:14 PM3/22/06
to sl-...@googlegroups.com
On 3/22/06, Manuel Alejandro Cerón Estrada <cero...@gmail.com> wrote:
>
> Andrés, Diego te está mostrando cómo implementar la función str_split.

Ups! Que pena!!!! Llegué hasta str_split($cadena) y dejé de leer. De
verdad disculpenme.
Gracias Diego ;-)

Wilfredo I. Pachón López

unread,
Mar 22, 2006, 2:58:00 PM3/22/06
to sl-...@googlegroups.com
Creo que esto te puede servir:

$cad= "Hello Wolrd";
$arr= array();
$n = strlen($cad);
for ($i=0;$i < $n; $i++)
$arr[$i] = $cad[$i];
print_r ($arr);


Salida de "print_r":
Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => W [7] => o
[8] => l [9] => r [10] => d )

--
Att:

Wilfredo I. Pachón López
Coordinador Tecnologías de Software y Asesor en Software Libre
Dirección Nacional de Sistemas
CUN (www.cun.edu.co)

----
Si desea conocer más sobre Software Libre en Colombia, puede visitar:
www.el-directorio.org


Andres Pinzon

unread,
Mar 23, 2006, 4:42:04 PM3/23/06
to sl-...@googlegroups.com
On 3/22/06, Wilfredo I. Pachón López <wilfr...@cun.edu.co> wrote:
>
> Creo que esto te puede servir:
Sip, sin embargo una aclaración:

>
> $cad= "Hello Wolrd";
> $arr= array();
> $n = strlen($cad);
> for ($i=0;$i < $n; $i++)
> $arr[$i] = $cad[$i];
> print_r ($arr);

strlen cuenta los saltos de linea "\n" como caractéres válidos, así
que una versión modificada sería (linea 2):

1 $cad= "Hello Wolrd";
2 trim ($cad);
3 $arr= array();
4 $n = strlen($cad);
5 for ($i=0;$i < $n; $i++)
6 $arr[$i] = $cad[$i];
7 print_r ($arr);

Así nos deshacemos de espacios en blanco, saltos de linea, valores
nulos y demás.
Gracias.

Reply all
Reply to author
Forward
0 new messages