PHP 复选框多次内爆


PHP Checkbox multiple implodes

我有多个复选框,比如说;

<input type="checkbox" value='One' />
<input type="checkbox" value='Two' />
<input type="checkbox" value='Three' />

我的php看起来像;

echo implode(', ', get_field('checkboxes'));

当我选中所有框时,我的输出看起来像;

一二三

但是,我正在寻找一种输出的样子;

一、二和三

当我只选中两个框时,输出将是;

一和二

在任何地方都找不到这个,请帮忙!

干杯

假设你有一个值数组,你可以使用 array_slice 只选择数组的某个部分来内爆,然后用最后一个&进行补充。下面是一个示例函数:

function show_values($values) {
    $size = count($values);
    $text = implode(', ', array_slice($values, 0, -1));
    $text .= ($size > 1) ? ' & ' : '';
    $text .= $values[$size - 1];
    return $text;
}
echo show_values(array('One')) . "'n"; // One
echo show_values(array('One', 'Two')) . "'n"; // One & Two
echo show_values(array('One', 'Two', 'Three')) . "'n"; // One, Two & Three

使用以下代码

$checkboxes = get_field('checkboxes');
$output = '';
$length = count($checkboxes);
for($i = 0 ; $i < $length; $i++) {
    if($i < $length - 1) {
        $output .= $checkboxes[$i] . ', '; 
        continue;
    }
    $output .= '& ' . $checkboxes[$i];
}
echo $output;