teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

解説の追記

2015/08/05 01:53

投稿

ngyuki
ngyuki

スコア4516

answer CHANGED
@@ -11,4 +11,50 @@
11
11
  foreach ($filteredRow as $key => $value ) {
12
12
  printf('<th>%s</th>', $key);
13
13
  }
14
- ```
14
+ ```
15
+
16
+ ---
17
+
18
+ `$row` は次のような連想配列なので、
19
+
20
+ ```php
21
+ array(
22
+ 'id' => 123,
23
+ 'coloum_1' => "列1",
24
+ 'coloum_2' => "列2",
25
+ 'coloum_3' => "列3",
26
+ 'coloum_5' => "列5",
27
+ 'coloum_6' => "列6",
28
+ 'coloum_7' => "列7",
29
+ );
30
+ ```
31
+
32
+ 次のような配列を `array_diff_key` すると、
33
+
34
+ ```php
35
+ array(
36
+ 'coloum_7' => null,
37
+ );
38
+ ```
39
+
40
+ 次のようになります。
41
+
42
+ ```php
43
+ array(
44
+ 'id' => 123,
45
+ 'coloum_1' => "列1",
46
+ 'coloum_2' => "列2",
47
+ 'coloum_3' => "列3",
48
+ 'coloum_5' => "列5",
49
+ 'coloum_6' => "列6",
50
+ );
51
+ ```
52
+
53
+ 要するに `$rows['coloum_7']` を unset した新しい配列を作っているだけです。
54
+
55
+ ぶっちゃけ次のようにしても同じですしこの方が早いです。
56
+
57
+ ```php
58
+ $filteredRow = $row;
59
+ unset($filteredRow['coloum_7']);
60
+ ```