Стандартное решение проблемы «последней запятой» состоит в том, чтобы поместить элементы в массив и затем сжать его:
$temp = array();
foreach($category as $item)
$temp[] = $item['name'];
echo implode(', ', $temp);
Если вы хотите, чтобы это было более универсальным, вы также можете написать функцию, которая выбирает («собирает») определенное поле из каждого подмассива:
function array_pluck($ary, $key) {
$r = array();
foreach($ary as $item)
$r[] = $item[$key];
return $r;
}
, а затем просто
echo implode(', ', array_pluck($category, 'name'));