2013-11-01 45 views
-2

我有多個複選框,讓我們說;PHP複選框多個內爆

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

我的PHP看起來像;

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

當我檢查所有的箱子我的輸出看起來像;

一,二,三

但是,我在尋找一種方式,我的輸出看起來像;

一,二&三

當我檢查只有兩箱輸出將是;

一個&兩個

找不到此任何地方,請大家幫忙!

乾杯

+3

向我們展示了'get_field'代碼 – Gautam3164

+0

我與WordPress的高級自定義字段插件工作。所以我打電話給get_field。 – user2944299

+0

這肯定有幫助:: http://stackoverflow.com/questions/8586141/implode-array-with-and-add-and-before-last-item –

回答

3

假如你有值的數組,你可以使用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 
+0

輝煌的解決方案,謝謝 – user2944299

0

使用下面的代碼

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