この記事では、データベースからデータを取得する場合は SELECT SUM(t_value), t_id FROM t_table GROUP BY t_id を実行できますが、PHP の 2 次元配列を特定のキー名でグループ化して加算するプログラム例を紹介します。 PHP プログラムで同様の問題に対処するのは少し面倒です
コードをコピーします コードは次のとおりです。
/* 関数: 特定のキー名を持つ 2 次元配列をグループ化して追加し、新しい 2 次元配列を返します
* パラメーターの説明: $arr-source array; $new_arr-get 追加後 new array; $target_key - グループ化するキー名
*/
function add_array($arr, &$new_arr, $target_key) {
$num = count($new_arr); // 新しい配列のサイズを計算します。配列も 2 次元であり、最初の次元はここで計算されます
for ($i = 0; $i < $num; $i++) {
重複を避けるために新しい配列にすでに存在します
// この関数以降ループ内で呼び出され、新しい配列には複数の要素が含まれる場合があります。新しい配列内のすべての要素を比較する必要があります。
新しい配列の要素は 1 次元配列であり、新しい 2 つのグループ キー名 - $ i の次元配列 動的
IF ($ arr [$ target_key]! = $ New_arr [$ i] [$ target_key]) {//) {//) {//) {//) {//新しい配列のグループ化キー名は現在のソース配列のグループ化キー名と等しい
$cmp_num++; // そうでない場合は、比較の数が 1 つ増加します
} else {// 等しい場合は、現在のグループ化キーname はすでに存在します X $ tar_exist = true; // 識別の存在を true に設定します
$ tar_Key = $ i; // 新しい配列内の現在のグループ キーの番号インデックスを返します
// パンの外にジャンプします。 cycle}}} // 比較の回数が新しい配列のサイズと同じ場合、現在のグループ化キー名が新しい配列にないことを示します。 存在フラグを false に設定します
if ($cmp_num == $num)
$tar_exist = false;
if ($tar_exist) {//グループ化キーの名前が既に存在する場合、グループの配列要素を追加します
foreach ($arr as $key => $value) {
使用の使用を使用して、sull- outを使用してOff- - - - を追加します。新しいグループキー名を設定し、グループの配列要素を追加します。 ' s ' ‑ ‑ ‑ ‑ ‑ ‐ // } }デジタルであり、0 から始まるため、新しい配列内の新しいグループのインデックスを $ NUM,
// の代わりに $ NUM+1 に直接使用できます。
$ new_arr [$ num] [$ target_key] = $ arr [ $target_key];
foreach ($arr as $key => $value) {
if ($key != $target_key) {//要素の値グループ名に対応してください
$arr = array(
array('group_id' => 13, 'team_price' => 88.00, 'Satpay_price' => 85.00, 'team_id' => 348, 'origin' => 440, 'ゲイン' => 14.45, '数量' => 5),
array('group_id' => 13, 'team_price' => 12.00, 'Satpay_price' => 11.00, 'team_id' => 344 、'origin' => 'gain' => 2.76、'quantity' => 3)、
array('group_id' => 14, 'team_price' => 4.99 ; 4.60、'チームID' => 335、'オリジン' => 0.31915、'数量' => 14、'チーム価格' => 12.00, 'Satpay_price' => 'team_id' => 'gain' => 1.84, 'quantity' => 'group_id' => 15、'team_price' => 11.00、'origin' => 1.84、 => 2)、
);
$new_arr = array();
foreach ($arr as $key => $value) {
add_array($value, &$new_arr, 'group_id'); //这里我们按group_id进行分组相加
}
var_dump($new_arr);
http://www.bkjia.com/PHPjc/824990.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/824990.html技術記事本書の第 1 章では、php の二層数組が特定の名前で実行される分組関連の例について説明します。データをデータベース リソースから取得する場合は、大規模に SELECT SUM(t_value),t_id FROM t_table G...