Stack Overflow en español Asked by Miguel on October 5, 2020
como puedo eliminar la última coma de un foreach, pero estando en el controlador, ya que es la respuesta php de un AJAX.
<div class="lasOpt">
<div>
<h5>Genero:</h5>
<span>";
foreach($pro->variaciones as $varia){
if ($varia->variant == 'genero'){
$filtradorHtml .= "$varia->valor, ";
}
}
$filtradorHtml .=
"</span>
</div>
</div>
Y aprovecho para preguntar, Si os dais cuenta antes del foreach, hay un <h5>
con el titulo, hay alguna forma de que si $varia->variant == 'genero'
existe si salga el titulo y si no existe no??
Gracias
Edición
He probado del siguiente modo lo de las comas y parace que funciona.
$dash = '';
$string = '';
foreach($pro->variaciones as $varia){
if ($varia->variant == 'genero'){
$string= $dash.$varia->valor;
$dash = ', ';
$filtradorHtml .= "$string";
}
}
Alguna ayuda para lo del titulo?
Ya que lo almacenas en $filtradorHtml
, puedes usar substring para eliminar los últimos dos caracteres (la coma y el espacio):
$filtradorHtml = substr($filtradorHtml, 0, -2);//Hace un substring desde el inicio (índice 0) hasta el final del string excepto los dos últimos elementos (-2)
En el enlace que te dejé a la documentación del método tienes más ejemplos si quieres
Editado:
Para añadir el título o no, puedes simplemente comprobar si el array contiene el valor deseado:
if(in_array("genero", array_values($pro->variaciones)){
$filtradorHtml .= <h5>Genero:</h5>
}
Explicación:
El if
será verdadero si el array que se le pasa a in_array()
contiene el valor "genero", como segundo parámetro dicha función necesita un array, obtenido usando array_values()
, el cual permite extraer todos los valores de un array de formato ["clave" => "valor"]
.
Si tienes alguna duda pregunta!
Correct answer by Benito-B on October 5, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP