【问题标题】:Combining two input arrays into a single array to input into a database with PHP将两个输入数组组合成一个数组以使用 PHP 输入数据库
【发布时间】:2011-03-14 14:55:19
【问题描述】:

我有一个允许用户创建链接列表的 jQuery 函数。通过单击“添加行”链接,他们可以创建任意数量的这些块(如下所示),他们可以在其中输入信息。

<div class="links_row">

    <input type="text" name="link_name[]">
    <input type="text" name="link_url[]">

</div>

我将此数据发布到 PHP 函数以插入到如下所示的数据库中:

+---------------+
|id             |
+---------------+
|name           |
+---------------+
|url            |
+---------------+

我需要弄清楚如何组合两个输入数组 link_name[] 和 link_url[] 并遍历生成的单个数组,将每个数组作为一行插入数据库中。

【问题讨论】:

    标签: php jquery arrays


    【解决方案1】:

    结合。你的意思是像array_merge()combine?

    如果是这样,请使用它。

    编辑: 再三考虑,您可能想要array_combine()。它需要两个数组并返回一个,其中一个输入数组提供键,另一个提供值。

    【讨论】:

    • array_combine 将如何解决他的问题?希望看到代码示例
    • array_combine() 将一个数组与第二个数组相关联。假设 HTML 是健全的,它们将按相同的顺序排列。再加上一个生成自己的 ID(自动增量或触发器/序列或其他)的表和一个插入的 foreach。
    • 这是一个不错的函数,但插入数据库时​​他可能只需要一个行数组,每个行都是列 => 值对的数组。这就是有多少框架在起作用。
    • 我们甚至不知道是否涉及到框架。从提出问题的方式来看,我认为不是。
    • 我正在使用 Codeigniter。我没有提到这一点,以防它让不了解框架的人无法回答。我很想知道这是否会改变一切?
    【解决方案2】:

    不,最好使用数组映射,因为数字会相互关联。签出:

    http://php.net/manual/en/function.array-map.php

    【讨论】:

      【解决方案3】:

      这可能不是最干净的方法,但应该使用快速循环。 我假设您已经验证并清理了表单数据并确保数组大小相同。

      $rows = array();
      
      $num_results = count($_POST['link_name']);
      for($i = 0; $i < $num_results;  $i++) {
          $rows[$i]['url'] = $_POST['link_url'][$i];
          $rows[$i]['name'] = $_POST['link_name'][$i];
      }
      

      【讨论】:

      • +1。快速简单,我认为这更像是 Plasticated 所追求的
      猜你喜欢
      • 1970-01-01
      • 2015-01-31
      • 2022-01-10
      • 1970-01-01
      • 2011-04-27
      • 2013-04-29
      • 2017-03-21
      相关资源
      最近更新 更多