PHP输入数组问题

时间:2011-07-21 16:14:25

标签: php arrays

我的表格包含3个出生日期输入,如下所示:

  <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数组(感谢@Matt H.):

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

现在,问题是,这会导致month/day/year的格式不正确,这不是我设置的数组的顺序,而是输入的顺序。难道我不得不手动将数组连接到MySQL所需的格式(年/月/日)?

2 个答案:

答案 0 :(得分:2)

首先对数组进行排序:

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

答案 1 :(得分:1)

尝试:

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

这将按键对数组$_userData['DOB']进行排序。根据您的输入元素,它将变为:

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