回答編集履歴

1

1

2017/07/21 14:18

投稿

takasima20
takasima20

スコア7460

test CHANGED
@@ -3,3 +3,71 @@
3
3
  「うまくいきません」だけじゃなくて、
4
4
 
5
5
  エラーの内容も含めて書くようにしましょう。
6
+
7
+ --- 追記 ---
8
+
9
+ せっかくなんでコードも。
10
+
11
+ 動かなかったら申し訳ないってことで。(^_^;
12
+
13
+ ```PHP
14
+
15
+ <?php
16
+
17
+ $like = array(
18
+
19
+ array('動物' => 'りす', '果物' => 'りんご', '飲み物' => 'コーラ'),
20
+
21
+ array('動物' => 'ねこ', '果物' => 'みかん', '飲み物' => 'サイダー'));
22
+
23
+
24
+
25
+ function myprint($val, $judge) {
26
+
27
+ if ($judge) echo $val.'<br>';
28
+
29
+ }
30
+
31
+ function print_animal($val, $key) {
32
+
33
+ myprint($val, ($key == '動物'));
34
+
35
+ }
36
+
37
+ function print_fruits($val, $key) {
38
+
39
+ myprint($val, ($key == '果物'));
40
+
41
+ }
42
+
43
+ function print_drink($val, $key) {
44
+
45
+ myprint($val, ($key == '飲み物'));
46
+
47
+ }
48
+
49
+
50
+
51
+ array_walk_recursive($like, 'print_animal');
52
+
53
+ array_walk_recursive($like, 'print_fruits');
54
+
55
+ array_walk_recursive($like, 'print_drink');
56
+
57
+
58
+
59
+ /*
60
+
61
+ 下記でもいけるかな?
62
+
63
+ array_walk_recursive($like, function($v,$k){myprint($v,($k=='動物'));});
64
+
65
+ array_walk_recursive($like, function($v,$k){myprint($v,($k=='果物'));});
66
+
67
+ array_walk_recursive($like, function($v,$k){myprint($v,($k=='飲み物'));});
68
+
69
+ */
70
+
71
+ ```
72
+
73
+