2016-11-10 7 views
1

Я использую в то время как цикл, чтобы получить значения из моей базы данных и мой результат как:удалить последнюю запятую из строки в while loop in php?

enter image description here

Я хочу удалить запятую после последнего значения цикла.

я использовал код, как ..

<?php 
$cat = get_terms('car_category'); // you can put your custom taxonomy name as place of category. 
     foreach ($cat as $catVal) { 
      echo '<b>'.$catVal->name.'</b>'; 
      $postArg = array('post_type'=>'cars','posts_per_page'=>5,'order'=>'desc', 
           'tax_query' => array(
                array(
                 'taxonomy' => 'car_category', 
                 'field' => 'term_id', 
                 'terms' => $catVal->term_id 
                ) 
          )); 

      $getPost = new wp_query($postArg); 
      global $post; 

      if($getPost->have_posts()){ 
       $str = ""; 
       echo '<div class="yearDiv">'; 
        while ($getPost->have_posts()):$getPost->the_post(); 
         $str =rtrim($post->post_title, ","); 
         echo '<span>'.$str.',</span>'; 
        endwhile; 
       echo '</div>'; 
      } 
     } 
?> 

я использовал RTRIM, функцию SubStr также для него, но не запятой удаления.

ответ

1

занять пост названия в массиве и использования Implode вместо ..

<?php 
$cat = get_terms('car_category'); // you can put your custom taxonomy name as place of category. 
     foreach ($cat as $catVal) { 
      echo '<b>'.$catVal->name.'</b>'; 
      $postArg = array('post_type'=>'cars','posts_per_page'=>5,'order'=>'desc', 
           'tax_query' => array(
                array(
                 'taxonomy' => 'car_category', 
                 'field' => 'term_id', 
                 'terms' => $catVal->term_id 
                ) 
          )); 

      $getPost = new wp_query($postArg); 
      global $post; 

      if($getPost->have_posts()){ 
       $str = array(); 

        while ($getPost->have_posts()):$getPost->the_post(); 
         $str[] = $post->post_title; 

        endwhile; 
      } 
      echo '<div class="yearDiv">'; 
      echo '<span>'.implode(', ', $str).'</span>'; 
      echo '</div>' 
     } 
?> 
+0

Спасибо @prakash, он работает сейчас. – maddy

+0

Welcome Bro, pls принимают ответ –

0

Вы пытались удалить rtrim в цикле while, но вместо этого после цикла вы выполняете функцию rtrim? Как это:

echo '<div class="yearDiv">'; 
    while ($getPost->have_posts()):$getPost->the_post(); 
     $str .= $post->post_title . ","; 
    endwhile; 
    echo '<span>'.rtrim($str, ",").'</span>'; 
echo '</div>'; 
+0

Да я пробовал, но это только дает мне первое значение цикла как .. Aprilia Dorsoduro 750 ABS, PRI PRIMODE, Yamaha XS650, Zero S, – maddy

+0

Ах да, вы должны использовать concat для строк .. склеивание всех ваших $ post-> post_title .. попробуйте еще раз на этот раз. –

3

Использование RTRIM для него. Просто убедитесь, что в конце строкового пространства не должно быть после запятой.

$yourString = rtrim($yourString, ","); 
0
echo '<div class="yearDiv">'; 
$str = ""; 
while ($getPost->have_posts()):$getPost->the_post(); 
    $str .= $post->post_title.","; 
endwhile; 

попробовать

if(substr($str, -1) == ',') { 
    $str = substr($str, 0, -1); 
} 

или

$str = rtrim($str,","); 

...

echo '<span>'.$str.'</span>'; 
echo '</div>'; 
0

Php имеет функцию декоративную

<?php 
$str = "item one ,item tow,item three,item 4,"; 
echo trim($str, ","); 
?> 

выход будет как этот

item one ,item tow,item three,item 4 
Смежные вопросы