Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 使用错误的阵列针_Php_Arrays - Fatal编程技术网

Php 使用错误的阵列针

Php 使用错误的阵列针,php,arrays,Php,Arrays,我将尝试用多维数组来描述我非常奇怪的问题 这是我的表格(部分) 其他检查包括print\r($\u POST['calc\u norm\u id']和print\r($\u POST['calc\u prijs']: $_POST[calc_norm_id] Array ( [1] => Array ( [0] => 8 [1] => 3 [2] => 2 ) [2] => Array ( [0] => 1 [1] => 4 [2] => 5 )

我将尝试用
多维数组
来描述我非常奇怪的问题

这是我的表格(部分)

其他检查包括
print\r($\u POST['calc\u norm\u id']
print\r($\u POST['calc\u prijs']

$_POST[calc_norm_id] Array ( [1] => Array ( [0] => 8 [1] => 3 [2] => 2 ) [2] => Array ( [0] => 1 [1] => 4 [2] => 5 ) )
$_POST[calc_prijs] Array ( [0] => 454.00 [1] => 740.00 [2] => [3] => [4] => [5] => [6] => )
仍在按预期进行

下一步是循环通过
数组
发送到数据库:

foreach($_POST['calc_prijs'] as $key=>$value)
{
$calc_prijs = trim(mysqli_real_escape_string($mysqli, $_POST['calc_prijs'][$key]));
if(is_array($_POST['calc_norm_id'][$key])) { $calc_norm_id = trim(mysqli_real_escape_string($mysqli, implode(',', $_POST['calc_norm_id'][$key]))); }
}
但是当我检查
$calc\u norm\u id
&
$calc\u prijs
时,我发现内容不匹配。 我期待着:

$calc_norm_id = 8,3,2
$calc_prijs = 454.00

$calc_norm_id = 1,4,5
$calc_prijs = 740.00
但我得到了:

$calc_norm_id = 
$calc_prijs = 454.00

$calc_norm_id = 8,3,2
$calc_prijs = 740.00

你知道这里发生了什么以及如何解决这个问题吗?

你需要对齐数组中的下标

$_POST[calc_norm_id] Array ( **[1]** => Array


454.00
位于
calc_prijs
的索引0处,但是
calc_norm_id
甚至没有键为
0
的元素……我看不出应该如何匹配?您在这里期望的
8,3,2
包含在
$\u POST['calc_norm_id']1
中,而不是
..[0]
。您选择的字段的名称为
name=“calc\u norm\u id['.$y.][”
,但您的数字输入字段的名称为
name=“calc\u prijs[]”
calc\u norm\u id
的键将是
y
值,显然从这里的1开始,但是
calc\u prijs
的键将从零开始生成。您应该按照相同的方案命名您的数字输入字段,以便两者实际上正确地相互关联:
name=“calc_prijs['.$y.]”
我现在使用:
if(is_数组($_POST['calc_norm_id'][$key+1]){$calc_norm_id=trim(mysqli_real_escape_字符串($mysqli,内爆(',',$_POST['calc_norm_id'.[$key+1]))))}
$calc_norm_id = 
$calc_prijs = 454.00

$calc_norm_id = 8,3,2
$calc_prijs = 740.00
$_POST[calc_norm_id] Array ( **[1]** => Array
$_POST[calc_norm_id] Array ( **[0]** => Array
$_POST[calc_norm_id] Array ( [0] => Array ( [0] => 8 [1] => 3 [2] => 2 ) [1] => Array ( [0] => 1 [1] => 4 [2] => 5 ) )
$_POST[calc_prijs] Array ( [0] => 454.00 [1] => 740.00 [2] => [3] => [4] => [5] => [6] => )