私のような配列している。そして、私のような文字列ワイルドカードを含む文字列へのPHPの配列の完全な文字列一致検索
$links = array('home', 'contact', 'profile/*', 'link1', 'link2');
を持っている:
$current_url = 'profile/user1';
が配列かどうかをテストすることが可能です$links
$current_url
ループする必要はありません$links
私はループと機能でそれを行う方法を知っていますが、私は可能な限りループを回避しようとしています。 ここでの問題は、文字列に対して完全な文字列をワイルドカードで照合したいということです。
[strpos](https://secure.php.net/strpos)はどうですか? – SianiparD
'$ links'は配列である必要がありますか?静的か動的かは何とか定義されていますか?代わりにregexpを使用してみましょう。https://3v4l.org/octM2このようにして、 '*'ワイルドカード以外の複雑なパターンやパターンの組み合わせを定義することができます。 – fyrye
ワイルドカード '*'の変数の使い方について詳しく説明できますか?それは常に非スラッシュを意味するのでしょうか?それは文字の部分集合を意味するのでしょうか?パイプで正規表現パターンを構築する(関数を反復する)か、foreachループを使って各要素をチェックするかのように、何らかのループを行う必要があります。パフォーマンス面で最善のことは、あなたのループの初期の 'break'条件を書いたり、(' array_search() 'のように)マッチするとすぐに停止する配列関数を使うことです。要素 '' profile/*/links/* ''が可能ならば、要素を '' rsort()で順序付けして優先順位を付ける必要があります。 – mickmackusa