【问题标题】:How to separate array by comma but don't want last comma如何用逗号分隔数组但不想要最后一个逗号
【发布时间】:2023-03-29 10:40:02
【问题描述】:

我想显示专辑的艺术家,用逗号分隔并作为链接。艺术家的名字保存在数组中。 代码将解释更多。

    <?php
    $Artist_Name = array("artist1", "artist2","artist3");
    ?>
    <p class="style18"><b>Artists</b>: <span class="style24">
    <?php
    foreach ($Artist_Name as $_value) {
    $Value_new = str_replace(' ', '-', $_value);
    ?>
    <a href= "<?=BASE_PATH?>artist/<?=$Value_new?>"><?=$_value?></a>, 

我得到以下结果。

artist1, artist2, artist3,

我只想删除最后一个逗号和。空间。 提前致谢。 任何帮助都会很棒:)

【问题讨论】:

标签: php arrays foreach


【解决方案1】:

使用implode(', ', $Artist_Name)(详见implode

更新

对于更复杂的情况,array_map 可用于每个元素的处理:

$Artist_Name = array("artist1", "artist2","artist3");
$artist_links = array_map(
    function($value) {
        return '<a href="/' . $value . '">' . $value . '</a>';
    },
    $Artist_Name
);
echo implode(', ', $artist_links);

【讨论】:

  • 我想为不同的艺术家提供不同的链接。这会将数组转换为字符串。
  • 这看起来很有希望
【解决方案2】:

herehere 提出了这个问题。但是,有几种方法可以做到这一点,例如:

$output = rtrim($string, ',');

编辑:阅读对此答案的评论后,很明显您不想转换为字符串。因此,您可以在 foreach 中使用计数器并检查最后一个计数器何时出现。如果是,请不要添加,。希望this 有所帮助

【讨论】:

  • 我不想要整个字符串作为链接
【解决方案3】:

为了从字符串中删除最后一个逗号,您可以使用下面的代码

$lastCommaRemoved = rtrim($Value_new, ',');

更新 原代码有很多错误,这里修复一个

    <?php
$Artist_Name = array("artist1", "artist2","artist3");
?>
<p class="style18"><b>Artists</b>:
<?php
foreach ($Artist_Name as $_value) {
$Value_new = str_replace(' ', '-', $_value);
    echo '<span class="style24"><a href= "'.BASE_PATH.'artist/'.$Value_new.'">'.$_value.'</a></span>';
}
?>

我也应该补充一下,下面的代码什么都不做

$Value_new = str_replace(' ', '-', $_value);

因为 $_value 变量的值中没有空格

【讨论】:

  • 但我在这里使用逗号&lt;/a&gt;,
  • 假设 Artist1 是 Justin Bieber 应该是 Justin-Bieber 以获得 seo 友好链接。
  • @Pradeep 好点 :) 你是对的,那么上面的代码应该可以做到这一点,你试过了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
相关资源
最近更新 更多