我有以下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";
}
?>
答案 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;