teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正版

2018/02/09 08:57

投稿

yambejp
yambejp

スコア117946

answer CHANGED
@@ -24,7 +24,7 @@
24
24
  ];
25
25
  $b=[];
26
26
  array_walk($a,function($x) use(&$b){
27
- $pattern="/(?<= ).+$/";
27
+ $pattern="/(?<=\s)\S+$/";
28
28
  if(preg_match($pattern,$x,$match)){
29
29
  $b[]=$match[0];
30
30
  }
@@ -58,4 +58,30 @@
58
58
  preg_match_all($pattern,$a,$match);
59
59
  $b=array_unique($match[0]);
60
60
  print_r($b);
61
+ ```
62
+ # 修正
63
+
64
+ 最初の例示はセパレータに全角スペースがはいっていましたが
65
+ 追記いただいたソースでは半角スペースになってますね
66
+ それではヒットしません、空白文字を利用していいならこうなります
67
+
68
+ ```PHP
69
+ <?PHP
70
+ $a=[
71
+ "2017/01/01 10:05:36 東京 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
72
+ "2017/01/01 10:05:36 東京 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
73
+ "2017/01/01 10:05:36 大阪 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** bbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
74
+ "2017/01/01 10:05:36 大阪 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** bbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
75
+ "2017/01/01 10:05:36 大阪 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** bbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
76
+ "2017/01/01 10:05:36 東京 TEST_TEST_TEST_TEST_TEST type=0 code=**.**.** aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
77
+ ];
78
+ $b=[];
79
+ array_walk($a,function($x) use(&$b){
80
+ $pattern="/(?<=\s)\S+$/";
81
+ if(preg_match($pattern,$x,$match)){
82
+ $b[]=$match[0];
83
+ }
84
+ });
85
+ $b=array_unique($b);
86
+ print_r($b);
61
87
  ```

1

追記

2018/02/09 08:57

投稿

yambejp
yambejp

スコア117946

answer CHANGED
@@ -32,4 +32,30 @@
32
32
  $b=array_unique($b);
33
33
  print_r($b);
34
34
  ```
35
- こうした上で、キーを「sample○○」にする根拠があれば提示下さい
35
+ こうした上で、キーを「sample○○」にする根拠があれば提示下さい
36
+
37
+ # 追記
38
+
39
+ もしかしたら、元データは配列じゃなくて文字列ってことですか?
40
+ ```PHP
41
+ $a=<<<eof
42
+ 2017/1/1 00:00:00 東京 aaaaaaaaaaaaaaaa
43
+ 2017/1/1 00:00:00 東京 aaaaaaaaaaaaaaaa
44
+ 2017/1/1 00:00:00 東京 aaaaaaaaaaaaaaaa
45
+ 2017/1/1 00:00:00 大阪 bbbbbbbbbbbbbbbb
46
+ 2017/1/1 00:00:00 大阪 bbbbbbbbbbbbbbbb
47
+ 2017/1/1 00:00:00 大阪 bbbbbbbbbbbbbbbb
48
+ 2017/1/1 00:00:00 大阪 bbbbbbbbbbbbbbbb
49
+ 2017/1/1 00:00:00 大阪 bbbbbbbbbbbbbbbb
50
+ 2017/1/1 00:00:00 福岡 cccccccccccccccc
51
+ 2017/1/1 00:00:00 福岡 cccccccccccccccc
52
+ 2017/1/1 00:00:00 福岡 cccccccccccccccc
53
+ 2017/1/1 00:00:00 福岡 cccccccccccccccc
54
+ 2017/1/1 00:00:00 福岡 cccccccccccccccc
55
+ eof;
56
+
57
+ $pattern="/(?<= ).+$/m";
58
+ preg_match_all($pattern,$a,$match);
59
+ $b=array_unique($match[0]);
60
+ print_r($b);
61
+ ```