0

配列の値を特定の文字列と比較する方法を理解しようとしています。

基本的に私の値はchrisx001、chrisx002、chrisx003、chrisx004、bob001のように見えます

私が見てfnmatch()いたのですが、これが正しい選択かどうかはわかりません。私がやりたいのはchrisxを維持することですが、bobを無視することです。最後のビットをワイルドカードで指定する必要があります。これを行う方法はありますか。私が好きになることができる場所

if($value == "chrisx%"){/*do something*/}

それが可能であれば、%値をintまたは他の場合と同様のものとして再確認することは可能ですか?

4

2 に答える 2

4

正規表現は、文字列が chrisx で始まるかどうかを教えてくれます。

if (preg_match('/^chrisx/', $subject)) {
  // Starts with chrisx
}

chrisx の後のビットをキャプチャすることもできます。

preg_match('/^chrisx(.*)/', $subject, $matches);

echo $matches[1];
于 2012-06-05T17:47:23.853 に答える
1

配列をフィルタリングして、「chris」で始まるエントリのみの 2 番目の配列を返し、そのフィルタリングされた配列を処理できます。

$testData = array ( 'chrisx001', 'chrisx002', 'chrisx003', 'chrisx004', 'bob001');
$testNeedle = 'chris';

$filtered = array_filter( $testData, 
                          function($arrayEntry) use ($testNeedle) { 
                              return (strpos($arrayEntry,$testNeedle) === 0); 
                          }
);

var_dump($filtered);
于 2012-06-05T17:54:07.500 に答える