2017-05-12 5 views
0

配列数を確認する条件を作成しました。私が持っているすべてが働いているが、私は結果がある場合になるように、それを構成する方法を把握しようとしています:配列数を確認し、最後の配列出力に "and"を追加する条件を追加します。

1, 2 and 3 

私はこれをどのように操作を行うことができます。

1, 2, 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); 
} 
+0

は私のポストはこれを行うには良い方法で...レッスンの –

答えて

1

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); 
} 
+0

おかげであなたを助けることを願っています。 – Paul

1

このようにすることができます。あなたが最後の要素を飛び出して、あなただけの最初の二つを維持したい場合は、(array_sliceを使用するarray_pop使用することができます

Try this code snippet heresample 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 " 
} 
1

)。その後、implodeを使用して配列を文字列に変換します。

$end = array_pop(&$array); 
echo implode(',', $array) . ' and ' . $end; 
関連する問題