php - 如何处理可能重复的数组键

标签 php arrays

我想弄清楚如何处理可能重复的数组键。

我有一个带有选择下拉列表的表单,可以选择多个选项(超过 1 个)。我正在使用 jQuery.serialize() 在提交时序列化表单。

多选元素的序列化字符串如下所示:

select=1&select=2&select=3 // assumming I selected first 3 options.

现在在 PHP 端,我有以下代码来处理“保存”到数据库中的部分。

$form_data = $_POST['form_items'];

$form_data = str_replace('&','####',$form_data);
$form_data = urldecode($form_data);
$arr = array();
foreach (explode('####', $form_data) as $part) {
        list($key, $value) = explode('=', $part, 2);

    $arr[$key] = $value;
}

好的,这一切都适用于其余的表单元素,但是当涉及到选择元素时,它只会选择最后选择的键/值对。所以我的数组现在看起来像这样:

Array ( [select_element] => 3)

我需要的是让它看起来像:

Array ( [select_element] => '1,2,3')

所以我想我要问的是基于我的代码,我如何检查一个键是否已经存在,如果存在,附加到 $value

最佳答案

如果可以修改客户端代码,我宁愿把select的名字改成select[],这样会被解析为数组在你的服务器脚本中。

关于php - 如何处理可能重复的数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864970/

相关文章:

php - 如何使用 max(select field) 选择一行和另一行(特定字段)?

javascript多维数组?

javascript - Node.JS 递归函数错误变量

php - Foreach 只返回数组元素的第一个字母?

php - 当我通过 json 请求同一行时更新 MySQL 行时,我收到旧值

php - 我的 PHP 语句有什么问题?

php - 为什么要使用 stdClass 而不是我们自定义的对象名称?

php - 登录 mysql 时权限被拒绝,但能够从 cmd digitalocean 登录

php - PHP-将2D数组中的一列转换为指定列名的1D数组

c# - 如何创建一个包含数字数组和字符串数组的随机类