TransWikia.com

Eliminar la ultima coma de un foreach, Laravel

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?

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP