PHPの配列処理

WBOY
リリース: 2016-06-23 14:11:38
オリジナル
864 人が閲覧しました

$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']).'<br />';}
ログイン後にコピー


得られた結果:
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']).'<br />';     $num = $num + $var['count'];  }else {     echo $var['lotno'].' * '.(100 - $num).'<br />';     $num = $num + $var['count'] - 100;     echo $var['lotno'].' * '. $num .'<br />';  }}
ログイン後にコピー
ログイン後にコピー



写真に示すように、緑色の部分は数量を表します。 ※紫色の部分の奥の部分が手前の金額に相当します。
最初の数量が 120 の場合、対応する結果は 3206 * 12 3207 * 63 3218 * 45 となるはずです
120 = 12+63+45 であるため
そして、紫色の 2 行目の結果は 3218 * 135 となるはずです。 (180-45)

これが私が望む結果です。

$num = 0;while($var = mysql_fetch_array($result,MYSQL_ASSOC)){  if($num + $var['count'] <= 100) {     echo $var['lotno'].' * '.($var['count']).'<br />';     $num = $num + $var['count'];  }else {     echo $var['lotno'].' * '.(100 - $num).'<br />';     $num = $num + $var['count'] - 100;     echo $var['lotno'].' * '. $num .'<br />';  }}
ログイン後にコピー
ログイン後にコピー


数量を 120 に設定すると、結果は次のようになります:
3206 * 12
3207 * 63
3218 * 45
3218 * 135
次の 3218 * 135 を記録できますか? whileループ?
つまり、最初に得られるサイクルは
3206 * 12
3207 * 63
3218 * 45
次のサイクルは
3218 * 135

これが私が得たい結果です。 (この結果を記録します 次の while ループ)

この結果を取得する代わりに:

最初の行
3206 * 12
3207 * 63
3218 * 45
3218 * 135
2 行目
3206 * 12
3207 * 63
3218 * 60
3218 * 120

まず計算されたデータを配列にキャッシュし、次に配列から出力します


まず計算されたデータを配列にキャッシュし、次に配列から出力します
ただし、結果はすべてループ、なぜそれを配列に入れるのですか?計画を尋ねてください。

while($var = mysql_fetch_array($result,MYSQL_ASSOC))
{

$res[] = $var['lotno'].' * '.($var['count']);


これ配列の中だけではないでしょうか?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート