回答編集履歴

1

追記

2021/12/21 10:38

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -19,6 +19,8 @@
19
19
 
20
20
 
21
21
  // PHP 5.6 以降
22
+
23
+ // 1段階平坦化マージ
22
24
 
23
25
  $result = array_merge([], ...$row);
24
26
 
@@ -54,6 +56,8 @@
54
56
 
55
57
  // PHP 7.4 以降
56
58
 
59
+ // コンマで分割して1段階平坦化マージ
60
+
57
61
  $result = array_merge([], ...array_map(fn ($col) => explode(',', $col), $row));
58
62
 
59
63
 
@@ -61,3 +65,75 @@
61
65
  var_dump($result);
62
66
 
63
67
  ```
68
+
69
+
70
+
71
+ ```php
72
+
73
+ <?php
74
+
75
+
76
+
77
+ $row = [
78
+
79
+ 'コード,名前',
80
+
81
+ 'カテゴリー名,電話番号',
82
+
83
+ '年齢',
84
+
85
+ '値段',
86
+
87
+ '税額',
88
+
89
+ ];
90
+
91
+
92
+
93
+ // PHP 5.6 以降
94
+
95
+ // CSV と見なしていい場合はこれで OK
96
+
97
+ $result = array_merge([], ...array_map('str_getcsv', $row));
98
+
99
+
100
+
101
+ var_dump($result);
102
+
103
+ ```
104
+
105
+
106
+
107
+ ```php
108
+
109
+ <?php
110
+
111
+
112
+
113
+ $row = [
114
+
115
+ 'コード,名前',
116
+
117
+ 'カテゴリー名,電話番号',
118
+
119
+ '年齢',
120
+
121
+ '値段',
122
+
123
+ '税額',
124
+
125
+ ];
126
+
127
+
128
+
129
+ // PHP 8.1 以降
130
+
131
+ // https://php.watch/versions/8.1/first-class-callable-syntax
132
+
133
+ $result = array_merge([], ...array_map(str_getcsv(...), $row));
134
+
135
+
136
+
137
+ var_dump($result);
138
+
139
+ ```