回答編集履歴
2
誤字修正
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
正規表現でのマッチでよければ `preg_grep('/ニン|カボ/', $array)` みたいな形にできれば期待する結果が得られます。
|
6
6
|
|
7
|
-
ということで、
|
7
|
+
ということで、$searchを `implode` を使って結合します。
|
8
8
|
|
9
9
|
```php
|
10
10
|
$array = ['ニンジン','カボチャ','タマネギ'];
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
```
|
17
17
|
|
18
|
-
$searchが外部からの入力で
|
18
|
+
$searchが外部からの入力である場合、正規表現で特別な意味をもつ文字(`/`や`()`)が入っていると正規表現が壊れるので、何も前処理をしていないのであれば `preg_quote` を掛けた方がいいでしょう。
|
19
19
|
|
20
20
|
```php
|
21
21
|
$quotedSearch = array_map('preg_quote', $search);
|
1
ドキュメントリンクの追加
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
正規表現でのマッチでよければ `preg_grep('/ニン|カボ/', $array)` みたいな形にできれば期待する結果が得られます。
|
6
6
|
|
7
|
-
ということで、$searchをimplodeを使って結合します。
|
7
|
+
ということで、$searchを `implode` を使って結合します。
|
8
8
|
|
9
9
|
```php
|
10
10
|
$array = ['ニンジン','カボチャ','タマネギ'];
|
@@ -21,4 +21,8 @@
|
|
21
21
|
$quotedSearch = array_map('preg_quote', $search);
|
22
22
|
$searchRegex = '/' . implode('|', $search) . '/';
|
23
23
|
preg_grep($searchRegex, $array);
|
24
|
-
```
|
24
|
+
```
|
25
|
+
|
26
|
+
[PHP: implode - Manual](https://www.php.net/manual/ja/function.implode)
|
27
|
+
[PHP: array_map - Manual](https://www.php.net/manual/ja/function.array-map)
|
28
|
+
[PHP: preg_quote - Manual](https://www.php.net/manual/ja/function.preg-quote)
|