Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

180
Views
Cómo repetir solo algunos nombres de una lista, de forma limpia

Estoy usando el siguiente código para enumerar los primeros 7 nombres de una larga lista, para cada publicación. El problema es que cuando una determinada publicación contiene una lista de nombres inferior a 7, por cada nombre que falta hasta 7, automáticamente imprime una coma ','

Entonces, cuando los nombres son 7 o más, muestra correctamente: "nombre1, nombre2, nombre3, nombre4, nombre5, nombre6, nombre7" Mientras que, por ejemplo, si contiene solo 3 nombres, imprimirá: "nombre1, nombre2, nombre3, ,,"

¿Hay alguna forma de agregar algo en el código para excluir la impresión de comas en el caso de nombres menores a 7?

 <?php $value = get_post_meta($post->ID, 'list_of_names', true); $value_array = explode(',', $value); $hrefs = []; for($i = 0; $i < 7; $i++) { $remove_space = str_replace(' ', '-', $value_array[$i]); $url = esc_url('myblogurl' . $remove_space); if ('' !== $url) { $display = esc_html($value_array[$i]); $hrefs[] = "<a href='$url'>$display</a>"; } } echo implode(",", $hrefs); ?>

He estado tratando de agregar elseif($i < 6) { echo ','; antes del final, pero me informó una sintaxis de error del sistema :(

¿Algún consejo?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Limite su ciclo al tamaño de su $value_array, manteniendo también el límite de 7.

 for ($i = 0, $count = count($value_array); $i < 7 && $i < $count; $i++)

Otra forma de codificar la misma idea:

 for ($i = 0, $min = min(7, count($value_array)); $i < $min; $i++)
about 4 years ago · Juan Pablo Isaza Report

0

Tiene los 'valores' en una matriz, por lo que podría usar funciones de matriz.

 <?php $values = get_post_meta($post->ID, 'list_of_names', true); $value_array = explode(',', $values); $hrefs = []; foreach (array_slice($value_array,0,7) as $value) { $remove_space = str_replace(' ', '-', $value); $url = esc_url('myblogurl' . $remove_space); if ('' !== $url) { $display = esc_html($value); $hrefs[] = "<a href='$url'>$display</a>"; } } echo implode(",", $hrefs); ?>

Ver: array_slice()

Aconsejaría usar algo que no sea value como nombre de variable, si desea que otros entiendan de qué se trata su código.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!