前提・実現したいこと
配列から一致するものを取得したいです。
問題内容
検索する文字に +
が入っている場合に検索が正常に機能しません。
+
が入っている状態で検索できるようにしたいです。
該当のソースコード
#NG パターン (sample_+_title__1_.jpg)
php
1<?php 2 $array = [ 3 1 => "https://sample.com/image_name/1/sample_+_title__1_.jpg", 4 2 => "https://sample.com/image_name/2/sample_+_title__2_.jpg", 5 3 => "https://sample.com/image_name/3/sample_+_title__3_.jpg", 6 ]; 7 8 $pattern = "{image_name/1/sample_+_title__1_.jpg}"; 9 $file = preg_grep($pattern , $array); 10 print_r($file); 11 12//結果 13Array() 14
OK パターン (sample__title__1_.jpg)
php
1<?php 2 $array = [ 3 1 => "https://sample.com/image_name/1/sample__title__1_.jpg", 4 2 => "https://sample.com/image_name/2/sample_+_title__2_.jpg", 5 3 => "https://sample.com/image_name/3/sample_+_title__3_.jpg", 6 ]; 7 8 $pattern = "{image_name/1/sample_+_title__1_.jpg}"; 9 $file = preg_grep($pattern , $array); 10 print_r($file); 11 12//結果 13Array 14( 15 [1] => https://sample.com/image_name/1/sample__title__1_.jpg 16) 17
試したこと
$file = preg_grep('/'.$pattern.'/' , $array); エラーメッセージ "preg_grep(): Unknown modifier '1'",
$file = array_search($pattern , $array); 完全一致の場合のみ問題ありませんでしたが一部が一致で取得したいです。
検索できずで困っております、ご教授お願いします。
解決ソースコート
$array = [ 1 => "https://sample.com/image_name/1/sample_+_title__1_.jpg", 2 => "https://sample.com/image_name/2/sample_+_title__2_.jpg", 3 => "https://sample.com/image_name/3/sample_+_title__3_.jpg", ]; $pattern = "image_name/1/sample_+_title__1_.jpg"; $result = "/".preg_quote($pattern,"/")."/"; $file = preg_grep($result , $array); dd($file); ``` # 上記で違うところあればご教授ください。
Laravelが関係ありそうな箇所がないのでタグは「PHP」だけにしてもらっても良いですか?
回答3件
あなたの回答
tips
プレビュー