回答編集履歴
3
加筆修正
test
CHANGED
@@ -63,3 +63,13 @@
|
|
63
63
|
echo str_replace($keywords, $spans, $content);
|
64
64
|
|
65
65
|
```
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
あと、些細なこだわりだが、
|
70
|
+
|
71
|
+
変数名が複数形の英単語を使う時は、array型のつもりでいた方が健全かもしれない。
|
72
|
+
|
73
|
+
なので、`$keyword`→`$keywords`としてarray型にして、
|
74
|
+
|
75
|
+
`$contents`→`$content`として単なるstring型としてわかりやすく配慮した。
|
2
加筆修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
$keywords = ['AAA', 'BBB'];
|
8
8
|
|
9
|
-
$content
|
9
|
+
$content = "AAAのCCCがBBBである";
|
10
10
|
|
11
11
|
$spans = array_map(function($var) {
|
12
12
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
}, $keywords);
|
16
16
|
|
17
|
-
echo str_replace($keywords, $spans, $content
|
17
|
+
echo str_replace($keywords, $spans, $content);
|
18
18
|
|
19
19
|
```
|
20
20
|
|
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
$keywords = ['AAA', 'BBB'];
|
52
52
|
|
53
|
-
$content
|
53
|
+
$content = "AAAのCCCがBBBである";
|
54
54
|
|
55
55
|
$spans = [];
|
56
56
|
|
@@ -60,6 +60,6 @@
|
|
60
60
|
|
61
61
|
}
|
62
62
|
|
63
|
-
echo str_replace($keywords, $spans, $content
|
63
|
+
echo str_replace($keywords, $spans, $content);
|
64
64
|
|
65
65
|
```
|
1
加筆修正
test
CHANGED
@@ -29,3 +29,37 @@
|
|
29
29
|
[PHP: str_replace - Manual](http://php.net/manual/ja/function.str-replace.php)
|
30
30
|
|
31
31
|
参照のこと。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
やってることを解説すると、
|
36
|
+
|
37
|
+
`$keywords`に含まれるキーワード群を元に、
|
38
|
+
|
39
|
+
置換後の語句を$spansに加工するのに、
|
40
|
+
|
41
|
+
array_map()と無名関数を使って簡単に書いている。
|
42
|
+
|
43
|
+
わかりやすくforeach()で書き直すとこうなる:
|
44
|
+
|
45
|
+
```php
|
46
|
+
|
47
|
+
<?php
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
$keywords = ['AAA', 'BBB'];
|
52
|
+
|
53
|
+
$contents = "AAAのCCCがBBBである";
|
54
|
+
|
55
|
+
$spans = [];
|
56
|
+
|
57
|
+
foreach ($keywords as $var) {
|
58
|
+
|
59
|
+
$spans[] = '<span>' . $var . '</span>';
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
echo str_replace($keywords, $spans, $contents);
|
64
|
+
|
65
|
+
```
|