Explode no funciona con comas multilpe dentro de la cadena

Intento encontrar la respuesta aquí y en Google, ¡pero no tengo suerte!

¿Por qué no funciona cuando intento explotar la cadena?

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$Text_Array = explode(",",$Text);

$Text_Array = array_filter($Text_Array);

print_r($Text_Array);

Me gustaría tener todas mis etiquetas divididas por UNA coma y eliminar cualquier espacio y etiquetas duplicadas.

Me gustaría este resultado:

"Brasil, bancos, hogar, Reino Unido, prueba, tiempos financieros, iPad, dos palabras";

Por favor, ¿puedes ayudarme a lograr esto?

4
Definir "no funciona". ¿Qué sucede y qué esperas exactamente en su lugar?
agregado el autor deceze, fuente
El uso de str_replace() antes de explotar; o utilice str_getcsv ()
agregado el autor Mark Baker, fuente
¿Cuál es el resultado esperado?
agregado el autor Robert, fuente

8 Respuestas

If you want to remove any space and duplicate tags then you need to also add array_unique with array_filter

$textAray = array_unique(array_filter($textAray));

Note .. Please this would not remove the . in the result .. here is a better way to filter your results

$text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";
$textArray = array_unique(preg_split("/[,.]+/", $text));
$textArray = array_filter($textArray);
echo implode(",", $textArray);

Salida

brazil,banks,home,uk,test,financial times,ipad,Two words
3
agregado
De nada ....
agregado el autor Baba, fuente
Sí, esta es la mejor respuesta para mi pregunta. ¡Mejor solución!. Gracias.
agregado el autor Andrei Andrade, fuente

Además de la solución dada por estas personas, puede probar esto para imprimir los valores que desee: -

foreach($Text_Array as $textval)
{
echo $textval . ",";
}
0
agregado

puedes probar esto

<?php

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$Text=str_replace(array(",,",",,,,",",.,",",,"),',',$Text);

$Text_Array = explode(",",$Text);

$Text_Array = array_filter($Text_Array);

print_r($Text_Array);
//output :: Array ( [0] => brazil [1] => banks [2] => home [3] => uk [4] => test [5] => financial times [6] => ipad [7] => banks [8] => Two words )
?>
0
agregado

Necesitas ese tipo de código

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$str = substr(preg_replace('/(.+?)[,]+/', '$1,', $Text),0,strlen($str)-1);
$arr = array_unique(explode(',', $str));
print_r($arr);
  1. Necesitas reemplazar, o más con uno, lo he hecho con preg_replace
  2. Eliminar último, de la cadena
  3. explotar por,
  4. Eliminar duplicados mediante array_unique()
0
agregado

Puede eliminar todos los datos innecesarios en su ejemplo reemplazando ',' con ',' hasta que no haya más ','.

while ( strstr($Text,',,') !== false ) {
    $Text = str_replace($Text,',,',',');
}

Funciones utilizadas:

0
agregado

Prueba esto:

<?php
$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";
$Text = str_replace('.','',implode(',',array_unique(explode(',', $Text))));
$Text_Array = explode(",",$Text);

$Text_Array = array_filter($Text_Array);

print_r($Text_Array);
?>
0
agregado

Lo que necesitas es la función array_unique:

$Text_Array = array_unique($Text_Array);

Entonces tu código se convierte en:

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$Text_Array = explode(",",$Text);

$Text_Array = array_filter($Text_Array);

$Text_Array = array_unique($Text_Array);\

print_r($Text_Array);

y luego obtendrá la salida deseada.

0
agregado

Podría reemplazar varias comas continuas por una sola coma antes de explotar la cadena

$Text = "brazil,banks,home,,uk,,,,test,financial times,.,ipad,,banks,,Two words,,";

$Text = preg_replace("/,+/", ",", $Text);
$Text_Array = explode(",",$Text);

print_r($Text_Array);

Tenga en cuenta que todavía tendrá un elemento en su matriz que contiene un punto, y el último elemento de la matriz estará vacío si su cadena termina con una coma.

0
agregado
PHP - Comunidad española
PHP - Comunidad española
6 de los participantes

En este grupo hablamos de PHP. Partner: es.switch-case.com