1

可能重复:
能够在 print_r() 的输出中看到一个变量,但不确定如何在代码中访问它

我可以将数组存储在变量中吗?

我有这个数组:

$_POST['product']

当我打印它时:

echo "<PRE>";
print_r($_POST['product']);
echo "</PRE>";

结果是:

<PRE>Array
(
    [0] => Array
        (
            [0] => 1
            [1] => cola
            [2] => wwww
            [3] => 1
            [4] => 2.00
            [5] => 0.00
            [6] => 2.00

        )

)
</PRE>

如何将数组的值存储在变量中?例如,我需要插入[1] => cola到数据库中的表中。

4

4 回答 4

1

您必须使用 foreach 循环来“扫描”数组并将 INSERT 查询发送到您的数据库,如下所示:

<?php
$updateStmt = $pdo->prepare("INSERT INTO table (field) VALUES (:FIELD)");
foreach( $_POST['product'] as $key => $val ){
    $updateStmt->execute(array(
        ':FIELD' => $val
    ));
}
?>
于 2012-11-10T16:10:53.213 回答
0
if(!empty($_POST['product'])) {
    $colaVar = $_POST['product'][0][1];
    echo $colaVar; // outputs'cola'
}
于 2012-11-10T16:07:20.443 回答
0

您根本不需要它,只需执行以下操作:

$arr = $_POST['product']
echo $arr[0][1]

这是访问数组值以执行您想要的任何操作的正常方式。

于 2012-11-10T16:13:20.373 回答
0

您可以像访问数组一样$_POST['product'][0][1]获取可乐的值。

对于多次插入数据库,您应该使用 foreach 循环或 for 循环。

更新

好的,Foreach 循环

foreach($_POST['product'] as $product) {
   mysql_query("INSERT INTO YOURTABLENAME('FIELD1','FIELD2'....) VALUES('".$product[0]."','".$product[1]."'....)"); 

}

我更喜欢使用 for 循环。

$count_array = count($_POST['product']);
for($i=0; $i>= $count_array; $i++){
   mysql_query("INSERT INTO YOURTABLENAME('FIELD1','FIELD2'....) VALUES('".$_POST['product'][$i]."','".$_POST['product'][$i]."'....)"); 
}

这也是一种通过避免在 for/foreach 循环中插入 sql 来插入数据库的优化方式。但现在这应该适合你.. :)

于 2012-11-10T16:44:06.320 回答