回答編集履歴

6

コメントの書き方を修正

2016/08/14 23:16

投稿

minr
minr

スコア37

test CHANGED
@@ -154,36 +154,36 @@
154
154
 
155
155
  var_export($resultArray);
156
156
 
157
- //出力結果
157
+ /* 出力結果
158
158
 
159
- //array (
159
+ array (
160
160
 
161
- // 0 =>
161
+ 0 =>
162
162
 
163
- // array (
163
+ array (
164
164
 
165
- // 'id' => 100,
165
+ 'id' => 100,
166
166
 
167
- // 'map' => 97,
167
+ 'map' => 97,
168
168
 
169
- // 'date' => '2016_05',
169
+ 'date' => '2016_05',
170
170
 
171
- // ),
171
+ ),
172
172
 
173
- // 1 =>
173
+ 1 =>
174
174
 
175
- // array (
175
+ array (
176
176
 
177
- // 'id' => 100,
177
+ 'id' => 100,
178
178
 
179
- // 'map' => 96,
179
+ 'map' => 96,
180
180
 
181
- // 'date' => '2016_04',
181
+ 'date' => '2016_04',
182
182
 
183
- // ),
183
+ ),
184
184
 
185
- //)
185
+ )
186
186
 
187
-
187
+ */
188
188
 
189
189
  ```

5

コード誤りの修正

2016/08/14 23:16

投稿

minr
minr

スコア37

test CHANGED
@@ -182,7 +182,7 @@
182
182
 
183
183
  // ),
184
184
 
185
- )
185
+ //)
186
186
 
187
187
 
188
188
 

4

列名変更(day→date)、取得結果の出力処理(var_export)を追記

2016/08/14 23:14

投稿

minr
minr

スコア37

test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  $sql = <<<EOD
92
92
 
93
- select a.id,a.map,max(a.date) as day from dataArray a,
93
+ select a.id,a.map,max(a.date) as date from dataArray a,
94
94
 
95
95
  (select id,map from dataArray where arrayid="1"
96
96
 
@@ -152,4 +152,38 @@
152
152
 
153
153
  $resultArray = intersect_dataArrays($dataArray_a,$dataArray);
154
154
 
155
+ var_export($resultArray);
156
+
157
+ //出力結果
158
+
159
+ //array (
160
+
161
+ // 0 =>
162
+
163
+ // array (
164
+
165
+ // 'id' => 100,
166
+
167
+ // 'map' => 97,
168
+
169
+ // 'date' => '2016_05',
170
+
171
+ // ),
172
+
173
+ // 1 =>
174
+
175
+ // array (
176
+
177
+ // 'id' => 100,
178
+
179
+ // 'map' => 96,
180
+
181
+ // 'date' => '2016_04',
182
+
183
+ // ),
184
+
185
+ )
186
+
187
+
188
+
155
189
  ```

3

SQLが横に長く見づらかったので、見やすくなるよう修正しました。

2016/08/14 23:12

投稿

minr
minr

スコア37

test CHANGED
@@ -16,7 +16,23 @@
16
16
 
17
17
  $db = new SQLite3(':memory:');
18
18
 
19
+ $sql = <<<EOD
20
+
19
- $db->exec('create table dataArray(arrayid string,id string,map string,date string);');
21
+ create table dataArray(
22
+
23
+ arrayid string,
24
+
25
+ id string,
26
+
27
+ map string,
28
+
29
+ date string
30
+
31
+ );
32
+
33
+ EOD;
34
+
35
+ $db->exec($sql);
20
36
 
21
37
 
22
38
 
@@ -24,7 +40,21 @@
24
40
 
25
41
  foreach($array1 as $record){
26
42
 
43
+ $sql = <<<EOD
44
+
45
+ insert into dataArray values(
46
+
47
+ "1",
48
+
49
+ "${record['id']}",
50
+
27
- $sql = 'insert into dataArray values("1","'.$record['id'].'","'.$record['map'].'","'.$record['date'].'");';
51
+ "${record['map']}",
52
+
53
+ "${record['date']}"
54
+
55
+ );
56
+
57
+ EOD;
28
58
 
29
59
  $db->exec($sql);
30
60
 
@@ -34,7 +64,21 @@
34
64
 
35
65
  foreach($array2 as $record){
36
66
 
67
+ $sql = <<<EOD
68
+
69
+ insert into dataArray values(
70
+
71
+ "2",
72
+
73
+ "${record['id']}",
74
+
37
- $sql = 'insert into dataArray values("2","'.$record['id'].'","'.$record['map'].'","'.$record['date'].'");';
75
+ "${record['map']}",
76
+
77
+ "${record['date']}"
78
+
79
+ );
80
+
81
+ EOD;
38
82
 
39
83
  $db->exec($sql);
40
84
 

2

表現を一部修正

2016/08/14 12:58

投稿

minr
minr

スコア37

test CHANGED
@@ -1,4 +1,4 @@
1
- テーブルようなもの)の扱いについてはSQLが得意とするところなので、SQLite3を使用されてはいかがでしょうか。
1
+ テーブルの扱いについてはSQLが得意とするところなので、SQLite3を使用されてはいかがでしょうか。
2
2
 
3
3
  以下、コードを載せておきます。
4
4
 

1

表現を一部修正

2016/08/14 12:25

投稿

minr
minr

スコア37

test CHANGED
@@ -1,4 +1,4 @@
1
- テーブル(≒2次配列)の扱いについてはSQLが得意とするところなので、SQLite3を使用されてはいかがでしょうか。
1
+ テーブル(のようなもの)の扱いについてはSQLが得意とするところなので、SQLite3を使用されてはいかがでしょうか。
2
2
 
3
3
  以下、コードを載せておきます。
4
4