Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php foreach数组(然后拆分索引)_Php_Arrays_Foreach - Fatal编程技术网

Php foreach数组(然后拆分索引)

Php foreach数组(然后拆分索引),php,arrays,foreach,Php,Arrays,Foreach,我已将所需的所有数据放入$\u POST数组中 如果我打印数组,我会看到如下内容: Array ( [0_45_115] => 01 [0_46_115] => 01 [0_47_115] => 01 [0_48_115] => 01 [0_49_115] => 01 [0_50_115] => 01 [0_51_115] => 01 [0_52_115] => 01 [0_53_115] => 01

我已将所需的所有数据放入$\u POST数组中

如果我打印数组,我会看到如下内容:

Array (
  [0_45_115] => 01
  [0_46_115] => 01
  [0_47_115] => 01
  [0_48_115] => 01
  [0_49_115] => 01
  [0_50_115] => 01
  [0_51_115] => 01
  [0_52_115] => 01
  [0_53_115] => 01
  [0_54_115] => 01
  [0_55_115] => 01
  [0_56_115] => 01
  [0_57_115] => 01
  [0_58_115] => 01
  [0_59_115] => 01
  [0_60_115] => 01
  [0_61_115] => 01
  [0_62_115] => 01
  [0_63_115] => 01
  [0_64_115] => 01
  [0_65_115] => 01
  [0_66_115] => 01
  [0_67_115] => 01
)
我在表单中发布的索引(名称attr)没有下划线。例如:

<input type="text" name="0 45 115" value="" />
$keys = array_keys($yourArray);
foreach($keys as $k) {
    $data = split("_", $k);
    print $data[0];
    print $data[1];
    print $data[2];

}

让我们忘掉这件事吧

索引所在的
0_45_115
将为我提供所有需要更新的数据或在数据库中插入新行。该值将显示我想要的信息

问题是我不知道如何管理阵列。也许我必须使用
foreach
方法,并且我将使用
split
函数分割每行的索引。然后,我将执行所有其他插入/更新数据库的操作

我问如何使用
foreach
$\u POST
数组中获取信息(索引数据)。

查看函数。
它将返回输入数组的所有键,然后您可以使用该函数处理键并获取所需的数据

例如:

<input type="text" name="0 45 115" value="" />
$keys = array_keys($yourArray);
foreach($keys as $k) {
    $data = split("_", $k);
    print $data[0];
    print $data[1];
    print $data[2];

}
查看函数。
它将返回输入数组的所有键,然后您可以使用该函数处理键并获取所需的数据

例如:

<input type="text" name="0 45 115" value="" />
$keys = array_keys($yourArray);
foreach($keys as $k) {
    $data = split("_", $k);
    print $data[0];
    print $data[1];
    print $data[2];

}

根据PHP规范,空格转换为下划线。有关更多详细信息,请参阅。具体来说,在页面中搜索此字符串:变量名中的点和空格转换为下划线

我认为正确的方法是

foreach($_POST as $key => $value)
{
    $parts = explode('_', $key);    //split your $key
    //then deal with corresponding $value
}

根据PHP规范,空格转换为下划线。有关更多详细信息,请参阅。具体来说,在页面中搜索此字符串:变量名中的点和空格转换为下划线

我认为正确的方法是

foreach($_POST as $key => $value)
{
    $parts = explode('_', $key);    //split your $key
    //then deal with corresponding $value
}

作为循环的替代方案,您可以使用:

结果:

array (
  array (
    0 => '0',
    1 => '45',
    2 => '115',
  ),
  array (
    0 => '0',
    1 => '46',
    2 => '115',
  ),
  array (
    0 => '0',
    1 => '47',
    2 => '115',
  ),
  ...

由于只有PHP5.3和更新版本在语言级别具有匿名函数,因此如果需要支持早期PHP版本,循环是更好的选择。否则,您必须使用
create_函数
,这很难看。

作为循环的替代方法,您可以使用:

结果:

array (
  array (
    0 => '0',
    1 => '45',
    2 => '115',
  ),
  array (
    0 => '0',
    1 => '46',
    2 => '115',
  ),
  array (
    0 => '0',
    1 => '47',
    2 => '115',
  ),
  ...

由于只有PHP5.3和更新版本在语言级别具有匿名函数,因此如果需要支持早期PHP版本,循环是更好的选择。否则,您必须使用
创建函数
,这太难看了。

这似乎就是我想要的。。你对gualano先生的下划线有什么解释吗?我用split()函数的一个小例子编辑了我的答案。看来这就是我要找的。。瓜拉诺先生,你对下划线有什么解释吗?我用split()函数的一个小例子编辑了我的答案。你的解决方案更好。。我必须学习面向对象的php和PDO,但是没有空闲时间,不幸的是…(答案是Thx,你的解决方案更好。)我必须学习面向对象的php和PDO,但是没有空闲时间不幸的是…(答案是Thx