【问题标题】:PHP Get Values Out of Checkbox ArrayPHP 从复选框数组中获取值
【发布时间】:2013-04-09 16:52:09
【问题描述】:

我试图弄清楚如何从复选框数组中获取值。复选框数组 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 ...
}

【问题讨论】:

  • 考虑到您在问题上添加了explode 标记,我猜您至少对如何解决此问题有所了解。您能否展示您迄今为止所做的工作并具体说明您遇到问题的地方?
  • 没有。这根本没有帮助。

标签: php arrays explode implode


【解决方案1】:

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

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

【讨论】:

  • 谢谢!这是我最初所做的,但不知道如何获取这些值。
  • 太棒了...干杯,编码快乐 :)
【解决方案2】:

一个不同的变体(使用匿名函数)是这样的:

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

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

【讨论】:

  • 谢谢。这很有趣——我希望我能理解它。我可以在类的函数中使用匿名函数吗?
  • 就我对匿名函数的理解而言,是的,但这取决于你想在哪里使用它。我用它作为array_map()函数的参数,但是你可以在其他地方定义它。您可以执行$a = function($input) { return $input + 6; } 之类的操作,然后像$c = $a(5) 一样执行它以获得11 结果:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多