[英]Adding key-value in PHP array?
在我处理与产品和多个单元相关的变量的循环中,我正在尝试将这两个添加到数组中:
$pedido = array();
所以,
foreach($_POST as $post_key => $post_value){
if ($post_value=="on") {
$nombreProducto = mysql_fetch_assoc($mySQL->query("SELECT nombre from productos WHERE id_producto='$post_key'"));
$cantidad = $_POST[$post_key."Number"];
echo "<h1>".$nombreProducto['nombre']."</h1>"." Cantidad: ".$cantidad." <br><br>";
$pedido["$nombreProducto"] = $cantidad;
}
}
它是对的:
$pedido["$nombreProducto"] = $cantidad;
我尝试执行添加的地方,但var_dump
的输出如下:
array(1){[“Array”] => string(1)“3”}
不完全是我想要的格式。
删除引号和
$pedido[$nombreProducto['nombre']] = $cantidad;
EDITED
似乎$nombreProducto
是一个数组,所以你需要指出关键字段,所以我改为使用字段“nombre”
如果你看到你的var_dump
它是一个带有"Array"
键的"Array"
这就是为什么你试图将数组转换为字符串并返回单词"Array"
你不应该在引号中单独放置一个变量。 删除引号。
此外,由于您只是在前一行访问$nombreProducto['nombre']
,因此很明显该变量是一个数组。 您不能将数组用作键,只允许使用整数和字符串。 因此,请使用标识它的内容,例如ID号。
使用$pedido[$nombreProducto['nombre']] = $cantidad;
而不是$pedido["$nombreProducto"] = $cantidad;
以下做法没有意义:
$pedido["$nombreProducto"] = $cantidad;
你想在这做什么? 我想你想要做的是:
$pedido[$nombreProducto['nombre']] = $cantidad;
您也可以尝试输出这样的数组:
print_r($pedido);
我建议你重新编写mysql查询,这样你就不需要循环了。 这是出于安全和效率的原因。 我还建议您使用mysqli而不是mysql,因为不推荐使用mysql并且使用不安全。 您不检查是否设置了$ _POST [$ post_key。“Number”],至少不在此代码中。 我希望你在对数据库使用之前清理/验证来自$ _POST的输入?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.