PHP更改阵列遍地
问题描述:
我有任何阵列PHP更改阵列遍地
$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”)。 你可以只非零值替换值:
while(list($pq, $oin) = mysql_fetch_row($result2)) {
if ($pq !== "0") $num_list[$oin] = $pq;
}
答
我没有让你更清楚,我以为你只问这个。检查
while(list($pq, $oin) = mysql_fetch_row($result2)) {
if($oin==58) {
$num_list[$oin] = $pq;
}
}
答
在我的模拟试题(虽然你很稀缺,信息),您的代码运作良好,并产生你想要的结果。检查你放入数组的第二个查询参数 - 即$ pg,这就是你应该得到的值0,0,0,0,0 ... 403或者其他的事情可能是你的$ oin数字不存在于$ num_list键。 虽然我用mysqli驱动测试过你的代码,但是资源提取fetch_row是一样的。请记住一件事 - 如果您的查询记录数大于$ numlist数组,并且$ oin数不唯一,您的$ numlist可能很容易被以下数据覆盖,$ numlist也可能会获得很多更多额外的不需要的元素。
总是试图提供您的问题的更广泛的背景下,可以有很多方法来解决这个问题,帮助早日到达。
'$ pq'和'$ oin'可以有什么值? – 2010-05-21 08:05:43
对不起,让我再解释一下。 $ oin必须是数组中的值(42,44,46,48,50,etcetc) $ pq可以是任何整数。 – Steven 2010-05-21 08:07:56
那么,你希望只用大于“0”的值或者一次只选择一个值来覆盖它? – Thariama 2010-05-21 08:22:08