当前位置:Gxlcms > PHP教程 > php数组处理

php数组处理

时间:2021-07-01 10:21:17 帮助过:11人阅读

$sql = "SELECT b.lotno as lotno,count(b.lotno) as count FROM `kw_manage` as a inner join `vp_barcode_2d_y` as b on a.packageno = b.packageno where a.cust_no = '".$newstr."' group by lotno order by lotno asc";$result = mysql_query($sql);while($var = mysql_fetch_array($result,MYSQL_ASSOC)){     echo $var['lotno'].' * '.($var['count']).'
';}


得到结果:
3206 * 12
3207 * 63
3218 * 180

能不能做到以下处理结果?当count对应的数量之和为100时,显示
3206 * 12
3207 * 63
3218 * 25
总和100之外的数据显示
3218 * 155


回复讨论(解决方案)

没看明白你想要什么结果

$num = 0;while($var = mysql_fetch_array($result,MYSQL_ASSOC)){  if($num + $var['count'] <= 100) {     echo $var['lotno'].' * '.($var['count']).'
'; $num = $num + $var['count']; }else { echo $var['lotno'].' * '.(100 - $num).'
'; $num = $num + $var['count'] - 100; echo $var['lotno'].' * '. $num .'
'; }}



如图所示,绿色的部分代表数量。紫色部分的*后面部分对应前面的数量。
如第一个的数量是120,后面对应的结果应该为3206 * 12 3207 * 63 3218 * 45
因为120 = 12+63+45.
而紫色的第二行结果应该为 3218 * 135。(180-45)

这是我想要的结果。

$num = 0;while($var = mysql_fetch_array($result,MYSQL_ASSOC)){  if($num + $var['count'] <= 100) {     echo $var['lotno'].' * '.($var['count']).'
'; $num = $num + $var['count']; }else { echo $var['lotno'].' * '.(100 - $num).'
'; $num = $num + $var['count'] - 100; echo $var['lotno'].' * '. $num .'
'; }}


假设数量设为120,得到的结果如下:
3206 * 12
3207 * 63
3218 * 45
3218 * 135
能不能将3218 * 135 记入下一个while循环?
也就是得到的第一个循环是
3206 * 12
3207 * 63
3218 * 45
下一个循环为
3218 * 135

这是我想得到的结果。


能不能像3楼的那个例子
紫色的第一行应该得到结果
3206 * 12
3207 * 63
3218 * 45
紫色第二行应该得到结果
3218 * 135(将这个结果记入下一个while循环)
而不是得到这样的结果:
第一行
3206 * 12
3207 * 63
3218 * 45
3218 * 135
第二行
3206 * 12
3207 * 63
3218 * 60
3218 * 120

你先把计算出的数据缓存到数组,然后再从数组输出

你先把计算出的数据缓存到数组,然后再从数组输出
但是结果都是循环输出的,怎么取到数组里面呢?求方案。

while($var = mysql_fetch_array($result,MYSQL_ASSOC))
{
$res[] = $var['lotno'].' * '.($var['count']);
}

这不就到数组里了吗?

人气教程排行