求二维数组合并的一个改进
一个抽奖程序,每次抽奖机会需要4种不同类型的礼包合成。
如下,数据库用了一个视图从礼包增减记录表分组求和查出来的结果。
uid gifttype, total
A 1 5
A 3 1
要动态求出用户的抽奖机会以及在页面循环输出的话,都希望上面的二维数组变成如下
A 1 5
A 2 0
A 3 1
A 4 0
我的算法如下,可以正常运行,解决问题。
待改进 1. 使用M()-select()搜出来的 uid,gifttype,total都是string 类型.
2. php有无更简单的内置函数之类的?
/////////////////////////////////////////////public function dealGifts($gifts,$uid){<br>
$blankGifts=array();<br>
for($i=1;$i
$blankGifts[$i-1]=array(<br>
'gtype'=>$i,<br>
'uid'=>$uid,<br>
'total'=>0<br>
);<br>
foreach ($gifts as $val){<br>
if($val['gtype']==$i){<br>
$blankGifts[$i-1]=$val;<br>
break;<br>
}<br>
}<br>
}<br>
return $blankGifts;<br>
}
dump结果:<br>
array(2) {<br>
[0] => array(3) {<br>
["gtype"] => string(1) "1"<br>
["uid"] => string(1) "2"<br>
["num"] => string(1) "1"<br>
}<br>
[1] => array(3) {<br>
["gtype"] => string(1) "3"<br>
["uid"] => string(1) "2"<br>
["num"] => string(1) "3"<br>
}<br>
}<br>
array(4) {<br>
[0] => array(3) {<br>
["gtype"] => string(1) "1"<br>
["uid"] => string(1) "2"<br>
["num"] => string(1) "1"<br>
}<br>
[1] => array(3) {<br>
["gtype"] => int(2)<br>
["uid"] => int(2)<br>
["num"] => int(0)<br>
}<br>
[2] => array(3) {<br>
["gtype"] => string(1) "3"<br>
["uid"] => string(1) "2"<br>
["num"] => string(1) "3"<br>
}<br>
[3] => array(3) {<br>
["gtype"] => int(4)<br>
["uid"] => int(2)<br>
["num"] => int(0)<br>
}<br>
}
AD:真正免费,域名+虚机+企业邮箱=0元