回答編集履歴
1
["317","311"]を動的化
test
CHANGED
@@ -13,3 +13,129 @@
|
|
13
13
|
if(strpos($value, $group) !== 0) continue; // 対象配列以外は読み飛ばす
|
14
14
|
|
15
15
|
を実装してみてください。
|
16
|
+
|
17
|
+
---
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
foreach(["317","311"] as $group) {
|
22
|
+
|
23
|
+
の部分を、動的化するには、
|
24
|
+
|
25
|
+
foreach($groupList as $group) {
|
26
|
+
|
27
|
+
と、["317","311"]を変数化する事を思いつけると良いです。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
で、$groupListを事前に作るのですが、
|
32
|
+
|
33
|
+
どう実装をするか?の前に、
|
34
|
+
|
35
|
+
修正前の現状仕様がどうなっているか把握し、
|
36
|
+
|
37
|
+
また、どういう仕様に修正するのかをきっちり決めてみてください。
|
38
|
+
|
39
|
+
と、言いますのは、テキストエリアに"200######"なしで、
|
40
|
+
|
41
|
+
$groupList = ["317","311","200"];
|
42
|
+
|
43
|
+
としてみて動きを見てみてください。
|
44
|
+
|
45
|
+
頭が0#で始まる、不明な出力が出て来ますよね。
|
46
|
+
|
47
|
+
恐らく、こういうのは意図していないのではないでしょうか。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
『**修正前の現状仕様がどうなっているか把握し、**』について
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
ご質問内で、
|
56
|
+
|
57
|
+
> 最後の317######は無視
|
58
|
+
|
59
|
+
とおっしゃってますが、私から見ますと、重要なデータに見受けられます。
|
60
|
+
|
61
|
+
試しに、そのデータ無しに、ご自身で書かれたコードを動かしてみてください。
|
62
|
+
|
63
|
+
恐らく、期待する結果とはならないのではないでしょうか。
|
64
|
+
|
65
|
+
この辺り、データ1つ1つどのような意味があって、
|
66
|
+
|
67
|
+
期待する処理結果が何であったのか、をしっかりと把握して欲しいです。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
『**どういう仕様に修正するのかをきっちり決めて**』について
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
- ①最終的にどのような処理結果とするのかを「**きっちり**」決める
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
例えば、テキストエリアに200開始の配列がなくても、
|
80
|
+
|
81
|
+
結果には200開始の処理結果を出力したい、など、
|
82
|
+
|
83
|
+
一言に「任意」といっても期待する結果は多種存在しますよね。
|
84
|
+
|
85
|
+
なので、どういう仕様にするかきっちり決める必要があります。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
- ②「**どういう仕様に修正するか**」決める
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
ご自身の思い描く仕様修正が、修正箇所ごとに追加なのか変更なのか、
|
94
|
+
|
95
|
+
現状仕様と照らしあわせて、検討してみてください。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
ご参考までに、私の当初回答を覧ていただきたいですが、
|
100
|
+
|
101
|
+
質問前の仕様をブラックボックス的に捉え、
|
102
|
+
|
103
|
+
317に加えて311を増やすという、
|
104
|
+
|
105
|
+
仕様追加の形で回答させていただきました。
|
106
|
+
|
107
|
+
なので、質問のコードの変更のない形での回答となった次第です。
|
108
|
+
|
109
|
+
(※処理の流れは変わっていますので、この意味での「コードの変更のない」は語弊があります。)
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
これらから、ようやく実装の修正方法が、
|
114
|
+
|
115
|
+
つまり、$groupListの作り方や既存部分の修正可否が明確になってきます。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
長々とした説明となってしまいましたが、$groupListの作り方だけ、一例として載せておきます。
|
120
|
+
|
121
|
+
```ここに言語を入力
|
122
|
+
|
123
|
+
$groupList = array();
|
124
|
+
|
125
|
+
foreach($data_array as $value) {
|
126
|
+
|
127
|
+
$header = explode('#', $value)[0];
|
128
|
+
|
129
|
+
if(!in_array($header, $groupList)) {
|
130
|
+
|
131
|
+
array_push($groupList,$header);
|
132
|
+
|
133
|
+
}
|
134
|
+
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
var_dump($groupList); // $groupListのチェック
|
140
|
+
|
141
|
+
```
|