配列の加算と減算の問題

WBOY
リリース: 2016-06-23 14:20:52
オリジナル
1512 人が閲覧しました

配列 a と b が与えられたとします。

//数组a:array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => '32',  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => '32',  ),)//数组b:array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'total' => '48',  ),)
ログイン後にコピー


配列 a cust_no が 310F6 1VA5A の場合、対応する合計金額は 32+32=64 であり、配列 b cust_no が 310F6 1VA5A の場合、対応する合計金額は 48 です。
配列 b の合計が 48 のとき、配列 a の内容が何に相当するのかを知りたいです。配列 a の残りの結果は何でしょうか?

この例では、
は配列 a の結果を取得します:
//数组a:array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => '32',  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => '16',  ),)
ログイン後にコピー

残りの配列 a の結果:
//数组a:array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => '0',  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => '16',  ),)
ログイン後にコピー


このような結果を取得するにはどうすればよいでしょうか?


ディスカッションへの返信 (解決策)

この質問をしたことがありませんか?

同様の配列に対して多くの垂直 (列) 計算を実行したい場合は、行と列の変換を実行することをお勧めします。これにより、考え方が広がります
最悪の場合、計算が完了したら、行を実行するだけです。列を変換して元に戻します

この問題を解決したことがありますか?

同様の配列に対して多くの垂直 (列) 計算を実行したい場合は、行と列の変換を実行することをお勧めします。これにより、思考が開かれます
最悪の場合、計算が完了したら、列を実行するだけです。列変換して元に戻します

列-列変換は役に立ちません。しかし、簡単な例を教えてください

この質問をしたことがありませんか?

同様の配列に対して多くの垂直 (列) 計算を実行したい場合は、行と列の変換を実行することをお勧めします。これにより、思考の幅が広がります
最悪の場合、計算が完了した後、列間の変換を行って元に戻します

データベースの列変換の場合、クロス集計が含まれますか?このクロス集計は非常に面倒です。

データベースまたは PHP 配列のいずれかです。 1 次元キーと 2 次元キー
$a[row][column] を $a[column][row] に置き換えるだけです。
このように、$a[a some列] として使用できる 1 次元の配列で、足し算、引き算、交差と差分、累積に非常に便利です

以前投稿した覚えがあります

//数组a:$a = array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => '32',  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => '32',  ),); //数组b: $b = array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'total' => '48',  ),);foreach($b as $source) {  $num = $source['total'];  foreach($a as $i=>$dest) {    if($num == 0) break;    if($dest['cust_no'] != $source['cust_no']) continue;    if($num >= $dest['part_count']) {      $num -= $dest['part_count'];      $res[] = $dest;      $a[$i]['part_count'] = 0;    }else {      $dest['part_count'] = $num;      $res[] = $dest;      $a[$i]['part_count'] -= $num;      $num = 0;    }  }}var_export($res);var_export($a);
ログイン後にコピー
array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => '32',  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => 16,  ),)array (  0 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2X15',    'part_count' => 0,  ),  1 =>   array (    'cust_no' => '310F6 1VA5A',    'lotno' => '2Z25',    'part_count' => 16,  ),)
ログイン後にコピー

データベースではなく、php の配列です, 1次元と2次元のキーを入れ替えます
$a[Row][Column]は$a[Column][Row]に変換されます
このように、$a[Column]は1次元の配列として使用できます、足し算、引き算、交差と差分、累積に非常に便利です

前に投稿したことを覚えています

わかりました、ありがとう!私が試してみましょう。

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