• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

416
Views
¿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?

over 3 years ago · Santiago Trujillo
2 answers
Answer question

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)));
over 3 years ago · Santiago Trujillo Report

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);
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error