回答編集履歴

1

追記

2017/02/02 13:42

投稿

yambejp
yambejp

スコア114742

test CHANGED
@@ -1 +1,51 @@
1
1
  例示のものだとどういう結果をえると想定していますか?
2
+
3
+
4
+
5
+ #追記
6
+
7
+ $array1の各要素のidがユニークである保証がないので、結局全部走査するしかないですね。
8
+
9
+ 「foreachを使わない」という条件ですが、以下やってることはforeachと同等です。
10
+
11
+
12
+
13
+ ```PHP
14
+
15
+ $array1 = [
16
+
17
+ ['id' => 1, 'name' => 'tanaka'],
18
+
19
+ ['id' => 2, 'name' => 'yamada'],
20
+
21
+ ['id' => 3, 'name' => 'yosida'],
22
+
23
+ ['id' => 1, 'name' => 'sato'],//idがかぶっても動く
24
+
25
+ ['id' => 4, 'name' => 'yosida'],
26
+
27
+ ];
28
+
29
+ $array2 = [1,3];
30
+
31
+ $name_list = '';
32
+
33
+ array_walk($array2,function($a) use($array1,&$name_list) {
34
+
35
+ array_walk($array1,function($b) use($a,&$name_list) {
36
+
37
+ if($b['id']==$a){
38
+
39
+ if($name_list!=="") $name_list.=",";
40
+
41
+ $name_list.=$b['name'];
42
+
43
+ }
44
+
45
+ });
46
+
47
+ });
48
+
49
+ print $name_list;
50
+
51
+ ```