在Javascript或PHP中获取2d数组键值

Getting 2d array key values in Javascript or PHP?

本文关键字:2d 数组 键值 获取 Javascript PHP      更新时间:2023-09-26

我有一个表格,其中所有单元格都有一个文本框来编辑单元格数据。现在,我想使用ajax将每个keyup事件的数据保存到表中。我将每个文本框命名为一个2d数组,其中包含2个id,每个键1个id,我想保存在一个表中。

<input type="text" name="txtfield[1][2]" />

现在这些1和2键是id,我想将它们分别保存在表的单独列中。

是否有一个简单的方法来获得这些键值,或者我应该使用一些字符串操作来获得这些值?

给它们命名可能会更容易一些

<input type="text" name="txtfield-1-2" />

然后在PHP中使用

访问它们
for (i = 1; i <= m; i++)
    for (j = 1; j <= n; j++)
        whatever($_POST["txtfield-$i-$j"]); /* or $_GET[...] */

在JavaScript中,你可以这样做

for (i = 1; i <= m; i++)
    for (j = 1; j <= n; j++)
        whatever(document.getElementById("txtfield-" + i + "-" + $j).value);

我假设它们在某种网格中,所以mn是已知的。如果没有,Ek0nomik的解决方案将更适合您,尽管正则表达式应该是'.*'[([0-9]+)']'[([0-9]+)'] ('[']应该在(...)之外,并且应该添加量词+以允许大于9的索引),或者更精确一点,^txtfield'[([0-9]+)']'[([0-9]+)']$

您可以在Javascript或PHP中获得这些值。只需使用正则表达式:

一个例子(如果需要可以更具体):

/.*('[[0-9]'])('[[0-9]'])/
PHP的例子:

preg_match_all('/.*('[[0-9]'])('[[0-9]'])/', 'txtfield[1][2]', $matches, PREG_PATTERN_ORDER);
//Do something with $matches.

我更喜欢使用jQuery,将数据从名称值中分离出来,避免使用正则表达式。

<input type="text" data-apples="some_value" data-oranges="some_value" id="yourID" />
在jQuery:

var apples = $('#yourID').data('apples');