PHP Implode envolver en etiquetas

2 minutos de lectura

avatar de usuario
Liam

He estado tratando de buscar una respuesta en Google, pero parece que no puedo encontrar nada, tengo lo siguiente …

<?php
    $values =   array_map('trim', get_post_custom_values($key));
    $value  =   implode($values,', ');
    echo "<div class="top-meta-vals">".apply_filters(" $value\n", $value)."</div>";
?>

Quiero envolver todos y cada uno $value en una etiqueta span pero no estoy seguro de cómo…

Lo intenté,

<?php
$value = "<span>".implode($values,', ')."</span>";
?>

sin suerte, ¿alguien puede darme una idea de dónde me estoy equivocando?

  • $value = '<span>'.implode('<span>, </span>', $values).'</span>';

    – Pee Haa

    26 de marzo de 2012 a las 13:08


  • El comentario de arriba está mal. Debería ser ‘, ‘ en la implosión

    – Lado oscuro

    3 de julio de 2013 a las 12:32

avatar de usuario
Maxim Krizhanovski

De esta manera, está envolviendo todo el conjunto en un lapso, debe agregar la etiqueta de cierre/apertura a la implosión:

$value = "<span>".implode('</span>,<span>', $values)."</span>";

  • Solo para mencionar: con vacío $tags matriz se convertiría <span></span> cuerda.

    – Bartosz Grzybowski

    26 de marzo de 2012 a las 13:11

  • Voltee los parámetros para implosionar y luego es correcto, debería ser: implode(‘,‘, $values)

    – h00ligan

    26 de marzo de 2012 a las 13:12

  • Para resolver el problema de $valores vacíos que da como resultado $valor como un elemento de intervalo vacío, puede echo trim( $value, '<span></span>');

    – Será.

    5 de febrero de 2014 a las 19:59

  • Tengo el mismo problema hoy. Añadido adicional empty() cláusula: empty($values) ? "" : "<span>".implode('</span>,<span>', $values)."</span>";

    – aval

    25 de marzo de 2015 a las 7:51

Puedes usar array_map función, algo así:

$filter = function($tag){ return '<span>' . $tag . '</span>'; };
$spannedTags = array_map($filter, $tags);

Termina y luego implosiona con ,.

Básicamente, esto simplemente implosiona sus valores, usando el ‘pegamento’ de intervalo cerrado/abierto, y lo envuelve de modo que el primer y el último elemento tengan sus etiquetas de intervalo inicial/final:

$value = "<span>" . implode("</span><span>", $values) . "</span>";

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad