これは狂った質問のようですが、私は次のような状況では最高の解決策を見つけられません。コンマで区切られた単語(haystack)の配列で文字列(針)を検索しています
私は 'categories'の配列を持っており、それぞれに 'searches'という文字列があります。これらの検索は、カンマで区切られた単語の文字列で、カテゴリに一致するようにstrpos
として機能します。ここでは、カテゴリ配列
$categories = [
0 => [
'category' => 'Foo',
'searches' => 'fet,cre,oho'
],
1 => [
'category' => 'Bar',
'searches' => 'lois,vreb,mon'
],
]
の
例は問題です。私はsecret
という単語があるとします。ご覧のとおり、$categories
の最初の配列はsearches
で、文字列にはcre
が含まれています。私が抱えている問題は、検索のコンマで区切られた単語の1つにstrpos()
という文字列に基づいたカテゴリを文字列(この例では '秘密')に指定してからカテゴリを返すアプローチですネコ)。私が探しています
結果:私が正しくあなたの質問を理解している場合
function findCategory($string)
{
$category = false;
// code to take the string,
// look through $categories
// find the first occurrence of a string position
// in the comma separated list of possible matches
return $category ? $category : 'Other';
}
echo findCategory('secret'); // Foo
echo findCategory('monster'); // Bar
echo findCategory('cohort'); // Foo
echo findCategory('tense'); // Other
**自分でコードを書き込もうとしています**。あなたが問題を抱えている場合は** [もっと研究している**](https://meta.stackoverflow.com/q/261592/1011527)の後**あなたが試したものを投稿してください** **動作しておらず、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供しています。 [質問する](http://stackoverflow.com/help/how-to-ask)の良い質問をお読みください。 [ツアーに参加する](http://stackoverflow.com/tour)と[this](https://meta.stackoverflow.com/q/347937/1011527)を必ずお読みください。 –
質問は少しブロードですが、あなたはまだ何も試してみませんか? – RiggsFolly
私は各カテゴリのすべてのカテゴリと検索を通してidループを考えることができます。次に、各検索を正規表現パターンとして扱い、元の文字列と照合します。一致するものがあればカテゴリを割り当てます。 – SchoolBoy