質問編集履歴

3

問題点を全体的に変更

2021/06/15 04:00

投稿

fd0517
fd0517

スコア3

test CHANGED
@@ -1 +1 @@
1
- PHPの連想配列について
1
+ PHPの連想配列のループ処理
test CHANGED
@@ -2,15 +2,27 @@
2
2
 
3
3
 
4
4
 
5
- PHPで連想配列の内容を判定し、DBに格納されてい変換後の値に変換て出力したい
5
+ 二つの配列の内容を比較し、同一であ場合は名称を表示したい
6
6
 
7
7
 
8
8
 
9
9
  ### 問題点
10
10
 
11
- $searchResult["data"][$i]["code"] == $value
11
+ 配列p_arrayには[C2,B4]のような要素が入っています。
12
12
 
13
- このif文がfalseになってしまいます。foreachの使方がおかしいょうか?
13
+ れを$searchResultとう連想配列['code']と比較
14
+
15
+ 同じものがある場合、$searchResultの['name']を表示する処理を行いたいです。
16
+
17
+
18
+
19
+ $searchResultをループで回して、
20
+
21
+ そのあとp_arrayを二重ループにして比較できるかと思ったのですが、
22
+
23
+ 連想配列のループ記述方法わかりません。
24
+
25
+ プログラム自体初心者なので全く頓珍漢なことをしているかもしれません。
14
26
 
15
27
 
16
28
 
@@ -20,19 +32,17 @@
20
32
 
21
33
  ```php
22
34
 
23
-
24
-
25
35
  $i=0;
26
36
 
27
- if (is_array($p_array)) {
37
+ if (is_array($p_array)) {
28
38
 
29
- foreach ($p_array $value) {
39
+ foreach ($searchResultをループしたい) {
30
40
 
41
+           foreach ($p_array as $value) {
42
+
31
- if ($searchResult["data"][$i]["code"] == $value) {
43
+ if ($value == $searchResult['code']) {
32
44
 
33
45
  echo $searchResult["data"][$i]["name"];
34
-
35
- echo ' ';
36
46
 
37
47
  }
38
48
 
@@ -42,31 +52,21 @@
42
52
 
43
53
  }
44
54
 
45
- //p_arrayが配列でない場合もあるため
46
-
47
- else
48
-
49
- {
50
-
51
- echo $p_array;
52
-
53
- }
54
-
55
55
  ```
56
56
 
57
57
 
58
58
 
59
59
  ### 補足情報(FW/ツールのバージョンなど)
60
60
 
61
+ var_export()の結果
61
62
 
62
-
63
- p_array の中身
63
+ p_array
64
64
 
65
65
  array ( 0 => 'C2', 1 => 'C6', 2 => 'E2', 3 => 'G', 4 => 'H', 5 => 'I', )
66
66
 
67
67
 
68
68
 
69
- DBから取得した$searchResultの中身
69
+ $searchResult
70
70
 
71
71
  array ( 'data' => array ( 0 => array ( 'code' => 'A', 'name' => '名前1', )
72
72
 
@@ -75,3 +75,7 @@
75
75
  , 2 => array ( 'code' => 'B2', 'name' => '名前3', )
76
76
 
77
77
  , 3 => array ( 'code' => 'B3', 'name' => '名前4', ),
78
+
79
+
80
+
81
+ これがB5~Z5まで続いています。(Aのみ特殊)

2

補足情報

2021/06/15 04:00

投稿

fd0517
fd0517

スコア3

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- is_arrayの中身
63
+ p_array の中身
64
64
 
65
65
  array ( 0 => 'C2', 1 => 'C6', 2 => 'E2', 3 => 'G', 4 => 'H', 5 => 'I', )
66
66
 

1

補足情報

2021/06/15 02:10

投稿

fd0517
fd0517

スコア3

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- i=0;
25
+ $i=0;
26
26
 
27
27
  if (is_array($p_array)) {
28
28
 
@@ -62,38 +62,16 @@
62
62
 
63
63
  is_arrayの中身
64
64
 
65
- A
66
-
67
- [A,B1] など
65
+ array ( 0 => 'C2', 1 => 'C6', 2 => 'E2', 3 => 'G', 4 => 'H', 5 => 'I', )
68
66
 
69
67
 
70
68
 
71
69
  DBから取得した$searchResultの中身
72
70
 
73
- 0
71
+ array ( 'data' => array ( 0 => array ( 'code' => 'A', 'name' => '名前1', )
74
72
 
75
- data
73
+ , 1 => array ( 'code' => 'B1', 'name' => '名前2', )
76
74
 
77
- code=>A
75
+ , 2 => array ( 'code' => 'B2', 'name' => '名前3', )
78
76
 
79
- name=>名前1
80
-
81
-
82
-
83
- 1
84
-
85
- data
86
-
87
- code=>B1
88
-
89
- name=>名前2
77
+ , 3 => array ( 'code' => 'B3', 'name' => '名前4', ),
90
-
91
-
92
-
93
- 2
94
-
95
- data
96
-
97
- code=>B2
98
-
99
- name=>名前3