Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

470
Vistas
¿Cómo eliminar palabras duplicadas de una cadena usando php?

A continuación se muestra la variable que tengo,

 $string = 'AAA,BBB,aAA,BbB,AAA,BbB';

Necesito el resultado de la cadena única a continuación,

 $string = 'AAA,BBB,aAA,BbB';

¿Cómo hacerlo único al igual que la función array_unique() , ¿hay alguna función de cadena predeterminada para eliminar la cadena duplicada en PHP?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No sé si php tiene esa función, pero puedes procesarlo así: demostración en vivo

 $raw = 'AAA,BBB,aAA,BbB,AAA,BbB'; $string = implode(',', array_unique(explode(',', $raw)));
about 4 years ago · Santiago Trujillo Denunciar

0

Para que conste, apoyo completamente el método de Kris, y esa es la forma que elegiría si fuera para mi proyecto. Sin embargo, me gustaría agregar que hay varias formas adicionales de despellejar a este gato:

Código: ( Demostración )

 $raw = 'AAA,BBB,aAA,BbB,BbB,AAA'; // str_word_count() -> array_unique() -> implode() echo implode(',',array_unique(str_word_count($raw,1))); echo "\n"; // str_getcsv() -> array_unique() -> implode() echo implode(',',array_unique(str_getcsv($raw))); echo "\n"; // preg_match_all() -> array_unique() -> join() echo join(',',array_unique(preg_match_all("/[A-Za-z]{3}/",$raw,$m)?$m[0]:array())); echo "\n"; // preg_split() -> array_unique() -> join() echo join(',',array_unique(preg_split("/,/",$raw))); echo "\n"; // preg_replace() -> parse_str() -> implode() parse_str(preg_replace('/(^|,)([A-Za-z]{3})/',"$2=$2&",$raw),$array); echo implode(',',$array);

Tengo 5 métodos diferentes para explotar la cadena csv sin usar explode() .

1 método que no usa array_unique.

Y, por supuesto, implode() y join() se pueden usar indistintamente ya que son sinónimos.

Creo que el quinto método es mi favorito, ya que es el más loco y no usa array_unique() . *lamentablemente es una frase de dos líneas :{


PD

@Thiyagu dice que así es como se construye la cadena:

 forloop(){ $string .= $a[i].',';}

Si eso es cierto, se pueden eliminar los duplicados dentro de este ciclo aprovechando una matriz temporal. Esto tiene el beneficio adicional de omitir la coma final que genera la concatenación.

 foreach($data as $value){ $result[$value]=$value; // duplicate values will be overwritten because arrays may not have two identical keys } echo implode(',',$result);
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda