我有任何数组
$num_list = array(42=>'0',44=>'0',46=>'0',48=>'0',50=>'0',52=>'0',54=>'0',56=>'0',58=>'0',60=>'0');
我希望在循环播放时更改特定值
while(list($pq, $oin) = mysql_fetch_row($result2)) {
$num_list[$oin] = $pq;
}
所以我想将58改为403而不是0。
然而,我总是得到最后的改变,而不是之前的改变。所以它总是最终成为类似的东西 0,0,0,0,0,0,0,0,0,403 而不是 14,19,0,24,603,249,0,0,0,403
我该怎么做才能覆盖呢?
由于
答案 0 :(得分:1)
我不会让你更清楚,我认为你只是问这个问题。检查一下
while(list($pq, $oin) = mysql_fetch_row($result2)) {
if($oin==58) {
$num_list[$oin] = $pq;
}
}
答案 1 :(得分:1)
嗯,你明确地编码了每个条目应该用数据库中的值替换(即使用“0”)。 您只能替换非零值的值:
while(list($pq, $oin) = mysql_fetch_row($result2)) {
if ($pq !== "0") $num_list[$oin] = $pq;
}
答案 2 :(得分:1)
在我的模拟测试中(虽然您对信息非常缺乏),但您的代码运行良好并产生您想要的结果。检查你放入数组的第二个查询参数 - 即$ pg,这就是你应该得到的东西0,0,0,0,0 ... 403或者其他的东西可能是你的$ oin数字不存在于$ num_list键。 我用mysqli驱动程序测试了你的代码,但是资源提取fetch_row是相同的。
请记住另一件事 - 如果您的查询记录编号大于$ numlist数组,并且$ oin编号不是唯一的,您的$ numlist可能会被以下数据轻易覆盖,$ numlist也可能获得更多其他多余的元素。
始终尝试提供更广泛的问题背景,可以通过多种方式解决问题,并尽快提供帮助。