Лучше:
$resultstr = array();
foreach ($results as $result) {
$resultstr[] = $result->name;
}
echo implode(",",$resultstr);
Можно также попробовать новое Array.Flat()
метод. Это работает следующим образом:
let arr = [["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]].flat()
console.log(arr);
flat()
метод создает новый массив со всеми элементами подмассива, связанными в него рекурсивно до 1 слоя глубины (т.е. выстраивает внутренние массивы)
, Если Вы хотите также выровнять 3 размерных или еще более высоких размерных массива, Вы просто называете плоский метод многократно. Например (3 размера):
let arr = [1,2,[3,4,[5,6]]].flat().flat().flat();
console.log(arr);
Array.Flat()
метод является относительно новым. Более старые браузеры как т.е., возможно, не реализовали метод. Если Вы хотите, чтобы Вы код работали над всеми браузерами, Вам, возможно, придется транссложить Ваш JS к более старой версии. Проверьте на веб-документы MD для текущей совместимости браузера.