0
一个php noob在这里。刚刚开始一个月前。我目前使用foreach key=> value
来同时遍历两个数组。但是,经过一些调试后,我发现在我的代码中,密钥跳过了数字1
?即关键值为[0 2 3 4 ...]
。 这里是我的代码:php数组,foreach键跳过一个值
<?php
foreach($_POST['array'] as $key=>$value)
{
echo $key;
//set up mysql connection
mysql_connect("localhost", "root", "") or die(mysql_error());
//select database
mysql_select_db("database") or die(mysql_error());
$value= mysql_real_escape_string($value);
$query = "SELECT Hours
FROM Table
WHERE Activity = '$value';";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
echo $row['Hours'];
echo '<br>';
}
?>
奇怪的是我调用了同一个脚本较早,但不同的阵列和关键值不跳过,所以这是我莫名其妙。任何帮助表示赞赏!
编辑:这里是我所要求的数组内容。
//key array
array(2) { [0]=> string(3) "abc" [2]=> string(4) "abcd" }
//value array
array(2) { [0]=> string(1) "2" [1]=> string(1) "8" }
我在这里看到问题,因为键和值迭代不匹配。我目前正在使用jQuery克隆函数来动态克隆数组,这可能是问题吗?
UPDATE:好的我已经解决了这个问题,这是由于我使用的jQuery克隆脚本。我为自己的作品修改了现有的脚本,并在那里错过了一些关键的id编号。感谢var_dump小窍门,它让我走上了正确的道路。
你确定关键是在后期数组?在你的'foreach'之前加上这个:'var_dump($ _ POST ['array']);'并且确保数组的内容符合你的期望。 – dave
你可以发布'var_dump($ _ POST ['array'])'的内容吗? –
你是什么意思跳过?你没有得到结果吗?尝试'echo $ query;'并检查 –