回答編集履歴
3
コメントより、サンプルソース改修
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
どのような形でもいいのならループして入れ替える方法とか。
|
2
2
|
field内部は再帰処理利用すれば短く済みますね。
|
3
|
+
|
4
|
+
※コメントより子fieldsのkeyは親のnameを冒頭につけるように改修。
|
3
5
|
```PHP
|
4
6
|
$array_copy = array();
|
5
7
|
|
@@ -9,20 +11,25 @@
|
|
9
11
|
|
10
12
|
var_dump($array_copy);
|
11
13
|
|
14
|
+
function nameToKey($rows=array(),$parent_name = null){
|
12
15
|
|
13
|
-
|
16
|
+
if(!is_null($parent_name)){
|
17
|
+
$parent_name .="_";
|
18
|
+
}
|
14
19
|
|
15
20
|
$row = array();
|
16
21
|
foreach($rows as $k=>$v){
|
17
22
|
if(is_array($v)){
|
23
|
+
foreach($v as $v_child){
|
18
|
-
|
24
|
+
$row[$k][] = nameToKey($v_child,$rows["name"]);
|
25
|
+
}
|
19
26
|
}else{
|
20
27
|
switch($k){
|
21
28
|
case "name":
|
22
29
|
$row[$k] = $v;
|
23
30
|
break;
|
24
31
|
case "key":
|
25
|
-
$row[$k] = $rows["name"];
|
32
|
+
$row[$k] = $parent_name.$rows["name"];
|
26
33
|
break;
|
27
34
|
}
|
28
35
|
}
|
2
コメント修正。
answer
CHANGED
@@ -32,5 +32,3 @@
|
|
32
32
|
}
|
33
33
|
|
34
34
|
```
|
35
|
-
|
36
|
-
※nameの値をkeyの値に設定する場合。keyの値をnameの値に設定したい場合は逆にしてください。
|
1
ソース修正・・
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
どのような形でもいいのならループして入れ替える方法とか
|
1
|
+
どのような形でもいいのならループして入れ替える方法とか。
|
2
|
+
field内部は再帰処理利用すれば短く済みますね。
|
2
3
|
```PHP
|
3
4
|
$array_copy = array();
|
4
5
|
|
@@ -19,11 +20,9 @@
|
|
19
20
|
switch($k){
|
20
21
|
case "name":
|
21
22
|
$row[$k] = $v;
|
22
|
-
continue;
|
23
23
|
break;
|
24
24
|
case "key":
|
25
25
|
$row[$k] = $rows["name"];
|
26
|
-
continue;
|
27
26
|
break;
|
28
27
|
}
|
29
28
|
}
|