質問編集履歴

5

ソースコードでイメージする流れを追記

2018/12/09 10:23

投稿

daijin
daijin

スコア17

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に修正

2018/12/09 10:23

投稿

daijin
daijin

スコア17

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

誤字訂正

2018/12/09 10:12

投稿

daijin
daijin

スコア17

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  }
32
32
 
33
- var_dump( $array_1 );
33
+ var_dump( $array );
34
34
 
35
35
  ```
36
36
 

2

質問内容の簡略化

2018/12/09 09:37

投稿

daijin
daijin

スコア17

test CHANGED
@@ -1 +1 @@
1
- 配列に「string(3)」という邪魔者が入っしまうせいで、get_post_metaで中の値取得できま
1
+ 配列の中の値を上手取得して、get_post_metaを機能さたい
test CHANGED
@@ -1,108 +1,38 @@
1
- 配列勝手に入る配列に「string(3)」とうのはどうしたら消ますか?
1
+ get_post_metaの対象値を取得したいのですが、配列の中その値があるせ上手に取得できまん。
2
2
 
3
3
 
4
4
 
5
- 消したい理由こうです。
5
+ $id取得きても、$scoresができないのです。
6
6
 
7
-
8
-
9
- 現在、次のよて「配列その1」を作ってます。
7
+ これはどうしたらよろしでしょうか?
10
8
 
11
9
  ```PHP
12
10
 
13
11
  $array_base = array( 187, 284 );
14
12
 
15
- $array_1 = array();
13
+ $array = array();
16
14
 
17
- foreach ( $array_base as $ids ) {
15
+ foreach ( $array_base as $id ) {
18
16
 
19
- $tmp1 = [
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_1, $tmp1);
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

説明追記

2018/12/09 09:33

投稿

daijin
daijin

スコア17

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