PHP « [PHP] Массив — вывод через запятую

Вывожу через запятую содержимое массива. Как сделать так чтобы после последней записи не было запятой?

1 ответов


implode(",", $array)


Как все сложно. Достаточно трех строк.


$s ='';
foreach($a as $v) $s .= $v.',';
$s = trim($s, ',');
 


// $a - array
end($a); // перемещаем указатель в конец массива
$last = key($a); // получаем последний ключ
foreach ($a as $k => $v){
  echo 'something';//
  if ($k !== $last) echo ','; // если текущий ключ не последний, выводим запятую
}

 


<?php
$cats="";
$list_cats="";
end($cats_sep);
$last = key($cats_sep);
foreach ($cats_sep as $i => $c_id){
  if ($c_id != ""){
    $yybzhgfrcom = "SELECT * FROM cat where cat_id='$c_id'";
    $yybzhgfrselcom = mysql_query($yybzhgfrcom);
    if ($an = mysql_fetch_array($yybzhgfrselcom)){
      $ir = $an["cat_name"];
      $ialt = $an["cat_altname"];
      $list_cats .= "$ir";
    }
    if ($i !== $last) $list_cats.=', ';
  }
}
 

ну и если чуть переписать получше...

$sql = "SELECT cat_name FROM cat where cat_id IN (".implode(',', $cats_sep).")";
$names = array();
if ($q = mysql_query($sql)){
  while ($cat = mysql_fetch_assoc($q)){
    $names[] = $cat["cat_name"];
  }
}
echo implode(',', $names);
 


$array = array(
    array('id'=>1, 'title'=>'pervyj'),
    array('id'=>2, 'title'=>'vtoroj'),
);

$i = 0;
foreach($array as $element) {
    echo $element['title'];
    if($i++ != count($array)) echo ', ';
}
 

Другой вариант, если массив попроще:

$array = array('pervyj', 'vtoroj');
echo implode(',', $array);
 

$names = "SELECT * FROM mytable";
$query_names = mysql_query($names) or die(mysql_error());
$names = array();
while($row = mysql_fetch_assoc($query_names)){
    $names[] = $row['name'];
}
echo implode(', ', $names);

echo join(", ", $array)