如何将内容放在PHP数组的特定部分之间?

时间:2015-12-16 13:15:55

标签: php arrays

我有以下PHP输出我的数组的内容。

我想做的是在数组之间用逗号回声,并在数组的最后一个之前加上'和'。

目前输出的代码说:“Cats Dogs Mice Lizards”

我希望它输出:“猫,狗,老鼠和蜥蜴”。

我是否可以告诉它在每个数组输出后添加一个逗号,除了最后一个并用“和”替换它?

或者我是否需要拆分数组并将它们全部作为倒数第二部分处理,然后将数组中的最后一部分视为另一部分?

感谢您的帮助。

<?php 
    $product = get_field('product');
    $products_sold = get_field('products_sold');
    $arraylength = count($products_sold);
    if ($product == "Pets") {
        for($x = 0; $x < $arraylength; $x++){
            echo $products_sold[$x] . "<br />";
        }
    } else {
        echo "The product is not a pet";
    }           
?>

6 个答案:

答案 0 :(得分:2)

如果您想对最后一个元素采取不同的行为,请考虑使用Amitabh Deotale's answer

array_pop()更改为某些内容
$last = array_pop($arrayname);
$string = sprintf("%s and %s", implode(", ", $arrayname), $last);

答案 1 :(得分:1)

使用implode功能,例如

implode(",",$arrayname);

答案 2 :(得分:1)

您可以使用array_pop()获取数组的最后一个元素。

$array = get_your_array();
$last_el = array_pop($array);

echo join(",", $array) . " and " . $last_el;

答案 3 :(得分:1)

您可以使用foreach使用此表单

循环遍历该数组
foreach ( $array as $index => $value )

这样您就可以像$index一样对count($array)进行测试

<?php 
    $product = get_field('product');
    $products_sold = get_field('products_sold');
    $arraylength = count($products_sold);
    if ($product == "Pets") {

        $htm = '';
        foreach ($products_sold as $idx => $val ) {
            if ( $idx < count($products_sold) -1) {
                $htm .= "$val, ";
            } else {
                $htm = rtrim($htm, ', ');
                $htm .= " and $val<br />";
            }
        }
        echo $htm;

    } else {
        echo "The product is not a pet";
    }           
?>

答案 4 :(得分:0)

使用以下代码块:

  for($x = 0; $x < $arraylength; $x++){
    $seprator = "";
    if ($x < $arraylength)
    {
        $seprator = ",";
        if ($x == ($arraylength-1))
            $seprator = "and";
    }  // Manage seprator after echo
    echo $products_sold[$x] . $seprator . "<br />";
   }

答案 5 :(得分:0)

你可以做到:

  $pets = array("Cats", "Dogs", "Mice", "Lizards");
  foreach ($pets as $key => $value) {
    if ($key == count($pets) - 1) $final .= "and " . $value.".";
    else $final .= $value.", ";
  }
  echo $final;