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