我知道这个问题很简单,但我对数组的经验很少而且有困难。无论如何我有这个数组:
$variables=array("$value1" => "int",$value2 => "var",$value3 => "int");
我想循环浏览它并为每个$ value添加
$stmt->bindValue(1,$value, PDO::PARAM_INT);
如果$ value是'int'或
$stmt->bindValue(1,$value);
如果$ value是'var'
并在循环变量时增加'1'。有谁知道怎么做?
答案 0 :(得分:2)
也许是这样的:
$count = 1;
foreach ($variables as $key => $value){
switch ($value) {
case "int":
$stmt->bindValue($count, $value, PDO::PARAM_INT);
break;
case "var":
$stmt->bindValue($count, $value);
break;
default:
exit("Invalid value");
}
$count++;
}
答案 1 :(得分:1)
foreach
循环让您循环遍历数组。 foreach ($array as $k=>$v)
语法允许您定义一个变量来保存当前键($k
),另一个用于保存当前值($v
)。我还使用了一个在每个周期($i
)递增的简单变量。
然后使用简单的if
- elseif
组合来做不同的事情。
$i=1;
foreach ($variables as $k=>$v) {
if ($v=='int') {
$stmt->bindValue($i, $k, PDO::PARAM_INT);
}
elseif ($v=='var') {
$stmt->bindValue($i, $k);
}
$i++;
}
这可以进一步优化,我想展示逻辑。
答案 2 :(得分:1)
简单循环应该这样做
$x=0;
foreach($variables as $key=>$value)
{
if($value=="var")
{
$stmt->bindValue($x,$key);
}
else
{
$stmt->bindValue($x,$value, PDO::PARAM_INT);
}
$x++;
}