2012-11-10 97 views
1

可能重复:
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插入数据库的表中。

+2

你能刚...更清楚一点?你在谈论'$ _POST ['product'] [0] [1]'? –

回答

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]."'....)"); 
} 

也有通过避免内部插入SQL数据库中插入一个优化的方式为/ foreach循环.. 但是现在应该为你工作.. :)

+0

你能让我举例示范 –

+0

*记住清理你的输入!!! 1!11one *使用'mysql_real_escape_string()',PDO或其他方法。 –

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

必须使用foreach循环“扫描”的阵列发送一个INSERT查询到您的数据库,如:

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

你并不需要,在所有的,只是做了以下内容:

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

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

+1

你完全不需要,只需执行以下操作:'echo $ _POST ['product'] [0] [1]' –

+0

@AlvinWong那么你是更正确的,但是如果他不想处理或更改密钥的值! – SaidbakR

+1

好的谢谢你的每一个 –

相关问题