Получение символов после последней, (через запятую) страны

#loops #query-string

#циклы #строка запроса

Вопрос:

Я хочу получить последний шанс запятой (,) в стране $. Но как мне это сделать?

 foreach ($countries as $country) {
  $country_id = $country['ID'];
  $country = get_the_title().", "; //comma

  echo "<pre>";var_dump($country);echo "</pre>";
  //string(6) "Taiwan, "
  //string(8) "Tanzania, "
  //string(14) "United Kingdom, "

  echo rtrim($country,", ");    //Works not: Taiwan, Tanzania, United Kingdom,
  echo substr($country, 0, strlen($country)-1); //Works not: Taiwan, Tanzania, United Kingdom,
  echo substr($country, 0, -1); //Works not: Taiwan, Tanzania, United Kingdom,
  echo implode(", ", $country); //Works not: Warning: implode(): Invalid arguments passed
  echo $country[-1] = PHP_EOL;  //Works not: (empty)
  echo substr($country, -1);    //Works not: (empty)
  echo substr(trim($country), 0, -1); //Works not: Taiwan Tanzania United Kingdom
  echo str_replace(', ', '', $country); //Works not: TaiwanTanzaniaUnited Kingdom
  echo str_replace('', ', ', $country); //Works not: Taiwan, Tanzania, United Kingdom,

}
  

Я хочу установить все, (запятую), кроме последней. Я должен перейти на Тайвань, Танзанию, Соединенное Королевство или Тайвань Танзания Соединенное Королевство. Но я предпочитаю Тайвань, Танзанию, Великобританию.
Любая помощь?

Ответ №1:

Попробуйте это

 $c=0;
foreach ($countries as $country) {
  $country_id = $country['ID'];
  $country = get_the_title();

  // Add comma only if it is NOT the last $country
  if (count($countries)-1 != $c) $country .= ", ";

  // display it
  echo $country;
  $c  ;
}
  

или

   $c='';
  foreach ($countries as $country) {
      $country_id = $country['ID'];
      $c .= get_the_title().", "; //comma
  }

  // remove comma from last country and display it
  echo rtrim($c,", ");