Php 删除尾随逗号-(请相信我,我在问这个问题之前做过研究。)

Php 删除尾随逗号-(请相信我,我在问这个问题之前做过研究。),php,arrays,multidimensional-array,comma,Php,Arrays,Multidimensional Array,Comma,好的,在你说什么之前,我已经做了一个小时的研究,没有任何技术在起作用。。。进入问题: 我正在使用一个多维数组,并试图在数组中回显一个特定品牌的所有车型。我有以下代码: <?php $cars = array( "Dodge" => array("Avenger","Challenger","Charger","Dart"), "Toyota" => array("Highlander","Tundra","Coroll

好的,在你说什么之前,我已经做了一个小时的研究,没有任何技术在起作用。。。进入问题:

我正在使用一个多维数组,并试图在数组中回显一个特定品牌的所有车型。我有以下代码:

<?php
$cars = array( 
              "Dodge"  => array("Avenger","Challenger","Charger","Dart"),
              "Toyota" => array("Highlander","Tundra","Corolla"),
              "Nissan" => array("Sentra","Altima","Maxima")
        );

echo "Make: Toyota"; echo "<br><br>";

foreach($cars['Toyota'] as $x)

{
$cars['Toyota'] = rtrim($x, ',');
echo "$x, ";
}

?>


很明显,我最近的一次尝试是使用rtrim函数,但这对我来说不起作用。也尝试过内爆功能,但没有成功。我可以在这里帮忙吗?非常感谢您的时间!谢谢。

你的问题是你自己把后面的逗号放进去了。试着这样做:

<?php
$cars = array( 
          "Dodge"  => array("Avenger","Challenger","Charger","Dart"),
          "Toyota" => array("Highlander","Tundra","Corolla"),
          "Nissan" => array("Sentra","Altima","Maxima")
    );

echo "Make: Toyota"; 
echo "<br><br>";

$first = TRUE;
$carString = '';
foreach($cars['Toyota'] as $x){
    if ($first){
        $carString .= $x;
        $first = FALSE;
    }else{
        $carString .= ", $x";
    }
}
echo $carString;
?>
<?php
$cars = array( 
          "Dodge"  => array("Avenger","Challenger","Charger","Dart"),
          "Toyota" => array("Highlander","Tundra","Corolla"),
          "Nissan" => array("Sentra","Altima","Maxima")
    );

echo "Make: Toyota"; 
echo "<br><br>";

$carString = '';
foreach($cars['Toyota'] as $car) {
   $carString .= $car.',';
}
echo rtrim($carString, ',');
?>
如果除了构建字符串之外,您不需要循环任何内容,只需
内爆
数组即可将其打印出来:

<?php
$cars = array( 
          "Dodge"  => array("Avenger","Challenger","Charger","Dart"),
          "Toyota" => array("Highlander","Tundra","Corolla"),
          "Nissan" => array("Sentra","Altima","Maxima")
    );

echo "Make: Toyota"; 
echo "<br><br>";
echo implode(', ', $cars['Toyota']);
?>

我认为这是您真正想要的:

foreach($cars['Toyota'] as $key=>$x)
{
echo $x;
if($cars['Toyota'][$key+1]){echo ', ';}
}

如何
echo内爆(',',$cars['Toyota'])?我有点困惑。你是不是在抱怨被呼出的结尾的逗号?如果是这样的话,那是因为你显式地在做'echo“$x”,它总是会给你一个逗号。这太接近了!但是,它返回为“Make:Toyota Highlander,Tundra,CorollaHighlander,Tundra,Tundra,Corolla”,因此返回时不带尾随逗号,但连续打印3次。。。可能是因为该特定数组中有三个值。。。所以这仍然是个问题,贾斯汀·伍德,这是真的。但是我想用逗号分隔这些项目。你没有告诉我们输出应该如何格式化。我刚刚给了你一个想法,你可以不循环,不存在最后一个元素有逗号的问题。另外,您不应该在循环中使用内爆函数。你不需要循环。尽管我给出了我自己的答案,但我还是对这一次投了更高的票,因为
echo introde…
避免了循环,而且它的代码更干净。我开始做这个编辑,但我会让你和OP来决定,但你可能想要
introde(',',$cars['Toyota')我更愿意将其作为一个循环。在这种情况下可能不需要。。。但我正在尝试学习循环,以防以后需要使用循环。所以我将尝试你的第一个答案,但它看起来像是一个尾随逗号修复了很多代码。它的工作布巴!你的答案与rtrim功能的工作,我相信这将是一个我更喜欢,虽然我仍在学习。。。将来我将使用foreach循环,所以我可能不需要它,但我以后可能会这样做,对吗?非常感谢你,我现在不能投票给你,因为我还没有15个代表。。。真的很抱歉:(但是你问了这个问题,你可以把它标记为选中的答案,不是吗?这正是我要找的。但是,它仍然与后面的逗号相呼应:(我完全使用了你的代码。我正在用phpfiddle.org进行测试。顺便说一句……我在测试了我的代码,它工作得非常好。但是,我建议改为使用@Bubba的解决方案。你将数组内爆并回显它。我现在将在那里测试它。我也喜欢Bubba的解决方案,但我想将其作为一个循环用于学习目的。到那时它还能工作吗?非常感谢你。)对于TecBrat的帮助。Bubba使用rtrim函数的解决方案终于对我起作用了。你的解决方案可能也很好,只是在我的情况下无法正确实现。谢谢你的帮助!!