【问题标题】:Dividing an array of ids sent by GET method into seperate ids Dynamically将 GET 方法发送的 id 数组动态划分为单独的 id
【发布时间】:2018-02-21 10:42:17
【问题描述】:

我有一个包含多个通过 GET 方法发送的 id 的数组,我想通过一个变量获取每个 id,我的代码仅针对 2 个 id 进行了修复,我使用以下代码检索了它们:

$searchString = ',';

if( strpos($_GET['id'], $searchString) != false ) 
{   
    $claimID = explode( ',', $_GET['id'] );
    $claimID1=$claimID[0];
    $claimID2=$claimID[1];
}

现在更改后,是否可以获得 2 个以上的 id,无限制,我想全部检索它们并在查询和布局中使用它们,我该如何实现?我必须在爆炸时使用循环,每当我想对所有 id 进行操作(查询每个 id)时,我都必须循环?

好吧,所以我过去常常爆炸,并在 2 个不同的参数中获取 2 个值并执行 2 个查询以获取数量并将它们加在一起为 1 个数量,然后对每个 id 使用更新查询,我的目标仍然是相同,但对于 2+ id,请注意,在 User No. 中,它需要发送 3 个值,但现在用逗号连接

【问题讨论】:

  • 只有 $claimID 数组中的所有值有什么问题?而且,是的,要对这个数组的所有元素进行操作,您需要遍历它们。
  • @AndyG 我必须在查询中使用每个 id,然后通过 ajax 调用发送 id,我隐藏了从 get 检索到的 2 个值的输入
  • “有可能获得超过 2 个 id,无限制,我想全部检索”如果你不知道你可能有多少个 id,那么数组仍然是最好的选择(这两个提供的答案还附带免责声明)。
  • @AndyG 是的,我可能有 1 到 10+
  • @AndyG 我将发布一张图片以获取更多信息。并且能够理解我的目标

标签: php mysql arrays get


【解决方案1】:

您实际上可以动态命名变量,尽管不推荐这样做:

$arr = [1, 2, 5];
$i = 1;
foreach($arr as $val) {
    $name = "claimID" . $i++;
    $$name = $val;
}
// Outputs 5
echo $claimID3;

【讨论】:

    【解决方案2】:

    您可以在 PHP 中创建变量变量,但我不会这样做。将所有内容保存在数组中要容易得多。

    关于变量变量的信息:http://php.net/manual/en/language.variables.variable.php (这是未经测试的,正如我所说,我不会这样做)。

    if( strpos($_GET['id'], $searchString) != false ) {
    
      $claimID = explode( ',', $_GET['id'] );
      for($i=0;$i<count($claimID);$i++) {
        $varname = 'claimID' . $i;
        $$varname = $claimID[$i];
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      相关资源
      最近更新 更多