2011-07-21 18 views
0

私は次のように出産入力の3日を含むフォームを持っている:PHP入力配列の質問

<label>Date of Birth</label> 
    <input type='text' size='2' maxlength='2' name='DOB[2]' /> 
    <input type='text' size='2' maxlength='2' name='DOB[3]' /> 
    <input type='text' size='4' maxlength='4' name='DOB[1]' /> 

入力の順序はmonth/day/yearとして働いています。ありません

if(isset($_userData['DOB'])) 
    $_userData['DOB'] = implode('-', $_userData['DOB']); 

さて、問題は、これはmonth/day/yearの不適切な形式に崩壊する、:私は、(@Matt H.のおかげで)などのようなDOB配列を崩壊する私のスクリプトにこれを送信しています私が設定した配列の順序ですが、入力の順序です。私は手動で配列をMySQLに必要な形式(年/月/日)に連結する必要がありますか?アレイの最初の

+0

しかし、一方で、より多くのコントロールが不明瞭なバグを避けるための良い方法と思われます。私はいつでも注文を明示的に設定するために行くだろう。 – Wrikken

答えて

1

試してみてください。これはキーで配列をソートし$_userData['DOB']ます

if(isset($_userData['DOB'])){ 
    ksort($_userData['DOB']); 
    $_userData['DOB'] = implode('-', $_userData['DOB']); 
} 

。あなたの入力要素に基づいて、それは次のようになります:

$_userData['DOB'] = array(
    1 => 'YYYY', 
    2 => 'MM', 
    3 => 'DD' 
); 
+1

完璧、ありがとう! – grep

2

並べ替え:

if(isset($_userData['DOB'])) { 
    ksort($_userData['DOB']); 
    $_userData['DOB'] = implode('-', $_userData['DOB']); 
} 
+0

無効な引数がimplode関数で渡されるというエラーが発生します。私はそれの外でこれを最初にしなければなりませんか? – grep

+0

はい、あります。申し訳ありませんが、ksortはtrue/falseを返します。私は私の答えを編集しました。 –