检查数组计数,然后添加条件以将 "and" 添加到最后一个数组输出

Checking array count and then adding condition to add "and" to last array output

我已成功创建检查数组计数的条件。我拥有的一切都在工作,但我正在尝试弄清楚如何配置它,以便如果结果是:

1, 2, 3

我希望它是:

1, 2 and 3

我该怎么做?

$proposal_type_arr = $_POST['prop-type'];
$proposal_type_count = count($proposal_type_arr);
if ($proposal_type_count == 1) {
    $proposal_type = implode("", $proposal_type_arr);
} 
else if ($proposal_type_count == 2) {
    $proposal_type = implode(" and ", $proposal_type_arr);
}
else if ($proposal_type_count > 2) {
    $proposal_type = implode(", ", $proposal_type_arr);
}

你可以这样做。

Try this code snippet here sample array taken

elseif ($proposal_type_count > 2)
{
    $temp=$proposal_type_arr[$proposal_type_count-1];//getting last element
    unset($proposal_type_arr[$proposal_type_count-1]);//unsetting last element
    $proposal_type = implode(", ", $proposal_type_arr);
    echo $proposal_type.= " and $temp";//attaching last element with "and "
}

您可以使用 array_pop 弹出最后一个元素,如果您只想保留前两个,请使用 array_slice()。然后使用 implode 将数组转换为字符串。

$end =  array_pop(&$array);
echo implode(',', $array) . ' and ' . $end;

您可以使用 array_pop() 获取数组中的最后一个元素。与 implode() 结合使用时,您可以减少条件逻辑。

示例:

$proposal_type_arr = $_POST['prop-type'];
$proposal_type_count = count( $proposal_type_arr );

if ( $proposal_type_count > 1 ) {
    $last_el = array_pop( $proposal_type_arr );
    $proposal_type = implode( ', ', $proposal_type_arr ) . ' and ' . $last_el;
} else {
    $proposal_type = current( $proposal_type_arr );
}