PHP - Separar cadena en varias, por un caracter en una determinada posicion

 
Vista:

Separar cadena en varias, por un caracter en una determinada posicion

Publicado por CIMO (2 intervenciones) el 06/10/2017 21:57:57
Hola a toda la comunidad

Alguien me puede apoyar en saber como separar una cadena en viarias dependiendo de un caracter en una determinada posición, voy a tomar un ejemplo que encontre en internet:

//Cadena
$str = 'uno|dos|uno|dos|uno|dos|uno|dos....';

//Lo que quiero es separar esta cadena cada X posiciones en este caso cada 2 posiciones del caracter "|"
//El resultado que quiero es:

0 --> 'uno|dos'
1--> 'uno|dos'
3--> 'uno|dos'
4--> 'uno|dos'
5--> ...etc.

Si alguien tiene alguna idea se lo agradecería mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Separar cadena en varias, por un caracter en una determinada posicion

Publicado por Yamil Bracho (888 intervenciones) el 06/10/2017 23:05:07
Usa explode
1
2
3
4
5
6
7
8
9
$str = 'uno|dos|uno|dos|uno|dos|uno|dos....';
$arr = explode("|", $str)
$count = 0;
$porciones = array();
while ($count < len($arr)) {
  array_push($porciones, $arr[$count] . "|" . $arr[$count + 1];
  $count+=2;
}
print_r($porciones);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Separar cadena en varias, por un caracter en una determinada posicion

Publicado por CIMO (2 intervenciones) el 07/10/2017 00:47:00
Eso es exactamente lo que quería realizar, lo intentaba con explode pero no me quedaba, que bueno que me entendiste.

Gracias Yamil Bracho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Separar cadena en varias, por un caracter en una determinada posicion

Publicado por kip (877 intervenciones) el 07/10/2017 19:25:15
Hola, es posible hacerlo de otras formas tambien:

1
2
3
4
5
$str = 'uno|dos|uno|dos|uno|dos|uno|dos....';
$arrayStr = array_map(function($v) {
   return implode('|', $v);
}, array_chunk(explode('|', $str), 2));
print_r($arrayStr);

1
2
3
$str = 'uno|dos|uno|dos|uno|dos|uno|dos....';
preg_match_all('/(?:\w+\|\w+[^\|]+)/', $str, $arrayStr);
print_r($arrayStr[0]);

Ambos muestran:

1
2
3
4
5
6
7
Array
(
    [0] => uno|dos
    [1] => uno|dos
    [2] => uno|dos
    [3] => uno|dos....
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar