回答編集履歴

3

コメントより、サンプルソース改修

2017/05/29 07:57

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -1,6 +1,10 @@
1
1
  どのような形でもいいのならループして入れ替える方法とか。
2
2
 
3
3
  field内部は再帰処理利用すれば短く済みますね。
4
+
5
+
6
+
7
+ ※コメントより子fieldsのkeyは親のnameを冒頭につけるように改修。
4
8
 
5
9
  ```PHP
6
10
 
@@ -20,9 +24,15 @@
20
24
 
21
25
 
22
26
 
27
+ function nameToKey($rows=array(),$parent_name = null){
23
28
 
24
29
 
30
+
25
- function nameToKey($rows=array()){
31
+ if(!is_null($parent_name)){
32
+
33
+ $parent_name .="_";
34
+
35
+ }
26
36
 
27
37
 
28
38
 
@@ -32,7 +42,11 @@
32
42
 
33
43
  if(is_array($v)){
34
44
 
45
+ foreach($v as $v_child){
46
+
35
- $row[$k] = nameToKey($v);
47
+ $row[$k][] = nameToKey($v_child,$rows["name"]);
48
+
49
+ }
36
50
 
37
51
  }else{
38
52
 
@@ -46,7 +60,7 @@
46
60
 
47
61
  case "key":
48
62
 
49
- $row[$k] = $rows["name"];
63
+ $row[$k] = $parent_name.$rows["name"];
50
64
 
51
65
  break;
52
66
 

2

コメント修正。

2017/05/29 07:57

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -67,5 +67,3 @@
67
67
  ```
68
68
 
69
69
 
70
-
71
- ※nameの値をkeyの値に設定する場合。keyの値をnameの値に設定したい場合は逆にしてください。

1

ソース修正・・

2017/05/29 07:03

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -1,4 +1,6 @@
1
- どのような形でもいいのならループして入れ替える方法とか
1
+ どのような形でもいいのならループして入れ替える方法とか
2
+
3
+ field内部は再帰処理利用すれば短く済みますね。
2
4
 
3
5
  ```PHP
4
6
 
@@ -40,15 +42,11 @@
40
42
 
41
43
  $row[$k] = $v;
42
44
 
43
- continue;
44
-
45
45
  break;
46
46
 
47
47
  case "key":
48
48
 
49
49
  $row[$k] = $rows["name"];
50
-
51
- continue;
52
50
 
53
51
  break;
54
52