问题描述
|
我知道这个问题很简单,但是我对数组的经验很少,并且遇到了困难。无论如何我有这个数组:
$variables=array(\"$value1\" => \"int\",$value2 => \"var\",$value3 => \"int\");
我想循环浏览一下,我想为每个$ value添加一个值
$ 1 is,如果$ value是\'int \'或
$2ѭ如果$ value是\'var \'
并在各个变量之间循环时增加“ 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++;
}
我想展示一下逻辑,这可以进一步优化。
, 也许是这样的:
$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++;
}
, 简单的循环应该做到这一点
$x=0;
foreach($variables as $key=>$value)
{
if($value==\"var\")
{
$stmt->bindValue($x,$key);
}
else
{
$stmt->bindValue($x,PDO::PARAM_INT);
}
$x++;
}