0

あなたが何かを言う前に、私は1時間調査を行いましたが、どのテクニックも機能していません...質問に進みます:

私は多次元配列を使用しており、配列内の特定のメーカーのすべての車のモデルをエコーし​​ようとしています。次のコードがあります。

<?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 関数を使用していましたが、それは私にとってはうまくいきませんでした。内破機能も試しましたが成功しませんでした。ここで何か助けてもらえますか?あなたの時間は大歓迎です! ありがとう。

4

2 に答える 2

2

問題は、末尾のコンマを自分で入れていることです。次のようなことを試してください:

<?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;
?>

制御構造のない単純なループが必要な場合 (ループで実際に何が起こっているかを示すのに役立つと感じました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>";

$carString = '';
foreach($cars['Toyota'] as $car) {
   $carString .= $car.',';
}
echo rtrim($carString, ',');
?>

文字列を作成する以外にループする必要がない場合はimplode、配列だけを印刷できます。

<?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']);
?>
于 2013-09-11T16:57:12.400 に答える
0

これがあなたが本当に望んでいるものだと思います:

foreach($cars['Toyota'] as $key=>$x)
{
echo $x;
if($cars['Toyota'][$key+1]){echo ', ';}
}
于 2013-09-11T17:02:02.727 に答える