質問編集履歴
5
ソースコードでイメージする流れを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -87,3 +87,21 @@
|
|
87
87
|
}
|
88
88
|
|
89
89
|
```
|
90
|
+
|
91
|
+
流れとしては、$array_baseの中の187と284というIDを基にし、それぞれに紐づくIDを$idsとして取得します。ここで取得されたIDが497と494と472と471です。
|
92
|
+
|
93
|
+
そして今回のget_post_metaはこの4つを対象にして、scoreを取得したいわけです。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
つまり上記の最終的な配列にあるのは下記を意味します。
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
497のscoreが54
|
102
|
+
|
103
|
+
494のscoreが44
|
104
|
+
|
105
|
+
472のscoreが78
|
106
|
+
|
107
|
+
471のscoreが86
|
4
$idを$idsに修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
foreach ( $array_base as $id ) {
|
16
16
|
|
17
|
-
$id = get_post_ancestors( $id );
|
17
|
+
$ids = get_post_ancestors( $id );
|
18
18
|
|
19
|
-
$scores = get_post_meta( $id, 'score', true ); // 機能しない
|
19
|
+
$scores = get_post_meta( $ids, 'score', true ); // 機能しない
|
20
20
|
|
21
21
|
$tmp = [
|
22
22
|
|
3
誤字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
}
|
32
32
|
|
33
|
-
var_dump( $array
|
33
|
+
var_dump( $array );
|
34
34
|
|
35
35
|
```
|
36
36
|
|
2
質問内容の簡略化
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
配列に
|
1
|
+
配列の中の値を上手に取得して、get_post_metaを機能させたい
|
test
CHANGED
@@ -1,108 +1,38 @@
|
|
1
|
-
|
1
|
+
get_post_metaの対象になる値を取得したいのですが、配列の中にその値があるせいか、上手に取得できません。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
$idは取得できても、$scoresができないのです。
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
これはどうしたらよろしいでしょうか?
|
10
8
|
|
11
9
|
```PHP
|
12
10
|
|
13
11
|
$array_base = array( 187, 284 );
|
14
12
|
|
15
|
-
$array
|
13
|
+
$array = array();
|
16
14
|
|
17
|
-
foreach ( $array_base as $id
|
15
|
+
foreach ( $array_base as $id ) {
|
18
16
|
|
19
|
-
$t
|
17
|
+
$id = get_post_ancestors( $id );
|
20
18
|
|
19
|
+
$scores = get_post_meta( $id, 'score', true ); // 機能しない
|
20
|
+
|
21
|
+
$tmp = [
|
22
|
+
|
21
|
-
'ids' => $ids
|
23
|
+
'ids' => $ids,
|
24
|
+
|
25
|
+
'scores' => $scores
|
22
26
|
|
23
27
|
];
|
24
28
|
|
25
|
-
array_push($array
|
29
|
+
array_push($array, $tmp);
|
26
30
|
|
27
31
|
}
|
28
32
|
|
29
33
|
var_dump( $array_1 );
|
30
34
|
|
31
35
|
```
|
32
|
-
|
33
|
-
ここでvar_dumpしてみると次です。全ての場所に「string(3)」というのが勝手に入っていることがわかります。これが邪魔者です。
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
```php
|
38
|
-
|
39
|
-
array(2) {
|
40
|
-
|
41
|
-
[0]=> array(1) {
|
42
|
-
|
43
|
-
["ids"]=> array(3) {
|
44
|
-
|
45
|
-
[0]=> string(3) "497"
|
46
|
-
|
47
|
-
[1]=> string(3) "494"
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
}
|
52
|
-
|
53
|
-
[1]=> array(1) {
|
54
|
-
|
55
|
-
["ids"]=> array(7) {
|
56
|
-
|
57
|
-
[0]=> string(3) "472"
|
58
|
-
|
59
|
-
[1]=> string(3) "471"
|
60
|
-
|
61
|
-
}
|
62
|
-
|
63
|
-
}
|
64
|
-
|
65
|
-
}
|
66
|
-
|
67
|
-
```
|
68
|
-
|
69
|
-
なぜ邪魔者かというと、上で作った「配列その1」を利用して次のように「配列その2」が作りたいのに、「string(3)」というのがあると、get_post_metaが機能しなくなってしまう(boolfalseになってしまう)ためです。
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
つまり、下記の
|
74
|
-
|
75
|
-
$array_1
|
76
|
-
|
77
|
-
の中からは「string(3)」はなくなって頂いて、
|
78
|
-
|
79
|
-
array(497, 494, 472, 471)
|
80
|
-
|
81
|
-
という意味であってほしいのです。
|
82
|
-
|
83
|
-
この4つのIDを使って次のようにget_post_metaを機能させて「配列その2」を作りたいわけです。
|
84
|
-
|
85
|
-
```php
|
86
|
-
|
87
|
-
$array_2 = array();
|
88
|
-
|
89
|
-
foreach ( $array_1 as $id ) {
|
90
|
-
|
91
|
-
$scores = get_post_meta( $id, 'score', true ); // 機能しない
|
92
|
-
|
93
|
-
$tmp2 = [
|
94
|
-
|
95
|
-
'scores' => $scores,
|
96
|
-
|
97
|
-
];
|
98
|
-
|
99
|
-
array_push($array_2, $tmp2);
|
100
|
-
|
101
|
-
}
|
102
|
-
|
103
|
-
```
|
104
|
-
|
105
|
-
どうしたらこの邪魔者をなくせますでしょうか?
|
106
36
|
|
107
37
|
|
108
38
|
|
@@ -134,7 +64,7 @@
|
|
134
64
|
|
135
65
|
}
|
136
66
|
|
137
|
-
[1]=> array(2 {
|
67
|
+
[1]=> array(2) {
|
138
68
|
|
139
69
|
["ids"]=> array(2) {
|
140
70
|
|
1
説明追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
現在、次のようにして配列その1を作っています。
|
9
|
+
現在、次のようにして「配列その1」を作っています。
|
10
10
|
|
11
11
|
```PHP
|
12
12
|
|
@@ -66,9 +66,21 @@
|
|
66
66
|
|
67
67
|
```
|
68
68
|
|
69
|
-
なぜ邪魔者かというと、上で作った配列その1を利用して次のように配列その2が作りたいのに、「string(3)」というのがあると、get_post_metaが機能しなくなってしまう(boolfalseになってしまう)ためです。
|
69
|
+
なぜ邪魔者かというと、上で作った「配列その1」を利用して次のように「配列その2」が作りたいのに、「string(3)」というのがあると、get_post_metaが機能しなくなってしまう(boolfalseになってしまう)ためです。
|
70
70
|
|
71
71
|
|
72
|
+
|
73
|
+
つまり、下記の
|
74
|
+
|
75
|
+
$array_1
|
76
|
+
|
77
|
+
の中からは「string(3)」はなくなって頂いて、
|
78
|
+
|
79
|
+
array(497, 494, 472, 471)
|
80
|
+
|
81
|
+
という意味であってほしいのです。
|
82
|
+
|
83
|
+
この4つのIDを使って次のようにget_post_metaを機能させて「配列その2」を作りたいわけです。
|
72
84
|
|
73
85
|
```php
|
74
86
|
|