开发者

PHP Change Array Over and Over

I have any array

$num_list = array(42=>'0',44=>'0',46=>'0',48=>'0',50=>'0',52=>'0',54=>'0',56=>'0',58=>'0',60=>'0');

and I want to change specific v开发者_运维技巧alues as I go through a loop

    while(list($pq, $oin) = mysql_fetch_row($result2)) {
        $num_list[$oin] = $pq;
    }

So I want to change like 58 to 403 rather then 0.

However I always end up getting just the last change and non of the earlier ones. So it always ends up being something like 0,0,0,0,0,0,0,0,0,403 rather then 14,19,0,24,603,249,0,0,0,403

How can I do this so it doesn't overwrite it?

Thanks


Well, you explicititly coded that each entry should be replaced with the values from the database (even with "0"). You could replace the values on non-zero-values only:

while(list($pq, $oin) = mysql_fetch_row($result2)) {
    if ($pq !== "0") $num_list[$oin] = $pq;
}


I don't get you more clear, i thought your asking this only. Check this

while(list($pq, $oin) = mysql_fetch_row($result2)) {
       if($oin==58) {
           $num_list[$oin] = $pq;
       }
    }


In my simulated tests (although You are very scarce with information), Your code works well and produces the result that You want. Check the second query parameter, that You put into array - namely $pg, thats what You should get there 0,0,0,0,0...403 OR Other thing might be that Your $oin numbers are not present in $num_list keys. I tested Your code with mysqli driver though, but resource extraction fetch_row is the same.

Bear in mind one more thing - if Your query record number is bigger than $numlist array, and $oin numbers are not unique, Your $numlist may be easily overwritten by the folowing data, also $numlist may get a lot more additional unwanted elements.

Always try to provide the wider context of Your problem, there could be many ways to solve that and help would arrive sooner.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜