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

时间:2012-11-10 16:05:08

标签: php arrays variables

  

可能重复:
  Able to see a variable in print_r()'s output, but not sure how to access it in code

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

我有这个数组:

$_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 个答案:

答案 0 :(得分:1)

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

<?php
$updateStmt = $pdo->prepare("INSERT INTO table (field) VALUES (:FIELD)");
foreach( $_POST['product'] as $key => $val ){
    $updateStmt->execute(array(
        ':FIELD' => $val
    ));
}
?>

答案 1 :(得分:0)

if(!empty($_POST['product'])) {
    $colaVar = $_POST['product'][0][1];
    echo $colaVar; // outputs'cola'
}

答案 2 :(得分:0)

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

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

这是访问数组值以执行任何操作的常用方法。

答案 3 :(得分: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]."'....)"); 

}

我更喜欢用于循环。

$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而在数据库中插入的优化方式。 但是现在这应该对你有用.. :))