PHP从Checkbox数组中获取值

时间:2013-04-09 16:52:10

标签: php arrays explode implode

我想弄清楚如何从复选框数组中获取值。复选框数组var_dump如下所示:

array (size=50)
0 => string '104702|0' (length=8)
1 => string '52278|1' (length=7)
2 => string '69891|1' (length=7)
3 => string '153335|1' (length=8)
4 => string '131140|1' (length=8)
. . .

我在每个数组值中发送两个不同的ID,由管道分隔,并希望将每个部分分配给不同的变量$ variable1,$ variable2,因此我可以在数据库查询中使用它们。我怎么能这样做?

感谢您的帮助。

编辑:尽管我已经接受了以下答案,但这是我正在寻找的完整答案:

要从上面的数组中获取值,以便我可以在我的数据库查询中使用它们,我做了以下操作,首先将它们分开:

foreach ($input as $key => $value) {
    $this->combinedIds[] = explode('|', $value);
}

然后,为了将值转换为单独的变量,我做了以下内容:

foreach ($this->combinedIds as $key => $value) {
    $firstId = $value[0];
    $secondId = $value[1]

    // do something with the values ...
}

2 个答案:

答案 0 :(得分:0)

在数组上使用foreach循环并使用管道符号分解每个值。像这样:

foreach ($arr as $val) 
{
    $newData = explode("|", $val);
}

答案 1 :(得分:0)

另一种变体(使用匿名函数)类似于:

$values = array_map(function ($input) { $tmp = explode("|", $input); return ["id1" => current($tmp), "id2" => end($tmp)]; }, $array);

这是为PHP 5.4+编写的。如果您需要与PHP 5.3及更低版本兼容的版本,只需将括号替换为相应的array(...)等效项。