0

我有一个这样的数组

$outputs:
  269 => string '   SUN: 2.495' (length=13)
  510 => string '   SUN: 1.416' (length=13)

另一个这样的数组

$filenames:
  0 => string 'Hi35
' (length=5)
  1 => string 'He_41
' (length=6)

为了更新各自的值,我尝试编写类似的代码

foreach($outputs as $key => $value){
    $sql = "UPDATE Store SET D='".$value."' WHERE `Index` = '".$filenames[$key]."'";
    mysql_query($sql);
}

但是没有$filenames[$key] value,因为 的键值$outputs以 269 开头。这只是一种情况,键值可以是任何值。

我也尝试了相反的方法。IE

我先合并了两个数组

$arr3 = array_combine($outputs, $filenames);

然后尝试将组合数组放入 SQL 查询中,例如

foreach($arr3 as $key => $value){
    $sql = "UPDATE Store SET D='".$key."' WHERE `Index` = '".$value."'";
    mysql_query($sql);
}

但是这很有效..您的帮助将不胜感激...

4

2 回答 2

1

你可以做这样的事情

$outputs = array(
  '269' => 'SUN: 2.495',
  '510' => 'SUN: 1.416'
  );

$filenames = array(
  '0' => 'Hi35',
  '1' => 'He_41'
);

$array_complete = array_combine($filenames, $outputs);

foreach($array_complete as $key => $val)
{
    echo "UPDATE Store SET D='".$val."' WHERE `Index` = '".$key."'" . '<br>';
}

这将输出

UPDATE Store SET D='SUN: 2.495' WHERE `Index` = 'Hi35'
UPDATE Store SET D='SUN: 1.416' WHERE `Index` = 'He_41'

然后我想记住您mysql_不推荐使用功能,因此我建议您切换到mysqliPDO

于 2013-05-15T08:09:01.510 回答
0

你的代码看起来一点也不好看,但这里有一个 hack:

$num_outputs = count($outputs);

$index = 0;
foreach($outputs as $key => $value) {
    $sql = "UPDATE Store SET D='".$value."' WHERE `Index` = '".$index."'";
    mysqli_query($sql);
    $index++;
}
于 2013-05-15T07:24:36.020 回答