2011-07-21 66 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。我送这个给我的脚本,然后将内爆DOB阵列像这样的(感谢@马特H.):现在

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

,问题是,这是内爆到month/day/year不当格式,这是不我设置的数组的顺序,但输入的顺序。我坚持不得不手动将数组连接成我需要的MySQL格式(年/月/日)?

+0

是的,但另一方面,更多的控制似乎是一个很好的方法来避免晦涩的错误。我会在任何一天明确地设置订单。 – Wrikken

回答

1

尝试:

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

这将通过关键的阵列$_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。我编辑了我的答案。 –