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

回答編集履歴

1

追記

2021/12/21 10:38

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -9,6 +9,7 @@
9
9
  ];
10
10
 
11
11
  // PHP 5.6 以降
12
+ // 1段階平坦化マージ
12
13
  $result = array_merge([], ...$row);
13
14
 
14
15
  var_dump($result);
@@ -26,7 +27,44 @@
26
27
  ];
27
28
 
28
29
  // PHP 7.4 以降
30
+ // コンマで分割して1段階平坦化マージ
29
31
  $result = array_merge([], ...array_map(fn ($col) => explode(',', $col), $row));
30
32
 
31
33
  var_dump($result);
34
+ ```
35
+
36
+ ```php
37
+ <?php
38
+
39
+ $row = [
40
+ 'コード,名前',
41
+ 'カテゴリー名,電話番号',
42
+ '年齢',
43
+ '値段',
44
+ '税額',
45
+ ];
46
+
47
+ // PHP 5.6 以降
48
+ // CSV と見なしていい場合はこれで OK
49
+ $result = array_merge([], ...array_map('str_getcsv', $row));
50
+
51
+ var_dump($result);
52
+ ```
53
+
54
+ ```php
55
+ <?php
56
+
57
+ $row = [
58
+ 'コード,名前',
59
+ 'カテゴリー名,電話番号',
60
+ '年齢',
61
+ '値段',
62
+ '税額',
63
+ ];
64
+
65
+ // PHP 8.1 以降
66
+ // https://php.watch/versions/8.1/first-class-callable-syntax
67
+ $result = array_merge([], ...array_map(str_getcsv(...), $row));
68
+
69
+ var_dump($result);
32
70
  ```