配列ループ時に特定の形式のキーのとき
かつvalueが0ではないとき
変数に++したいです。
元のソースはこうでしたが、これをループで対応したいです。
やり方がうまくわかりませんので教えていただきたいです。
説明不足、説明が意味不明でしたら修正します。
宜しくお願い致します。
元のソース
php
1foreach ((array)$items as $item) { 2 if ($item->DAY_01 != 0) { 3 $n1++; 4 } 5 if ($item->DAY_02 != 0) { 6 $n2++; 7 } 8 if ($item->DAY_03 != 0) { 9 $n3++; 10 } 11 if ($item->DAY_04 != 0) { 12 $n4++; 13 } 14 //31まで続く 15} 16
ループ対応にしようとしたソース
php
1foreach ((array)$items as $item) { 2 foreach ($item as $key => $value) { 3 if(preg_match('/^DAY_\d{2}/', $key)) { 4 $daynum = substr($key,-2); //10 .. 11 .. 12 5 $dayxx = "DAY_{$daynum}"; //DAY_10 .. DAY_11 .. 6 7 $nday = "n{$daynum}"; 8 9 //item->DAY_** 0 じゃないとき 10 if ($item->$dayxx !=0) { 11 **++ したい 12 ${$nday}++; 13 } 14 } 15 } 16}
回答1件
あなたの回答
tips
プレビュー