2016-08-12 8 views
0

問題:キーフレーズの文字列をチェックし、フレーズが含まれている場合は、特定のタグ名に割り当てる必要があります。文字列のキーフレーズの検索:PHP

私はPHPでWordPressで働いています。

私がこれまでに作成したコードは次のとおりです。文字列は言葉ジョギングボトムスが含まれている場合

/* WOMENS SPORTSWEAR TAGS */ 
function map_womens_sportswear_tags($tag_name) { 
$tags = array(
    'Womens Tracksuit Pants' => array( 
     'Tracksuit Pants', 
     'Sweatpants', 
     'Shell Pants', 
     'Jogger Pants', 
     'Jogging Bottoms', 
     ), 
    'Womens Tracksuit Jackets' => array( 
     'Tracksuit Jacket', 
     ), 
    'Womens Fleece Jacket' => array(
     'Fleece', 
     ), 
    ); 

foreach($tags as $tag => $values) { 
    $current_tag = $tag; // Current tag is the name of the tag, like Womens Sports Shoe or Womens Tracksuit Pants 
    foreach($values as $value) { 
     if (strtolower($value) == strtolower($tag_name) || stripos($tag_name, $current_tag )) { 
      return $current_tag; // Returns tag name, i.e. 'Womens Sports Shoe' or 'Womens Tracksuit Pants' 
      break; 
     } 
    } 
} 
return $tag_name; 
} 

したがって、レディーストラックスーツのパンツに割り当てます。私はこの目的のためにstriposを使用しましたが、コードを動作させることはできません。

誰かがコーディングを始めているので、正しい方向に向けることができますか。事前に多くの感謝。

+0

する必要があります関数から '$ current_tag'を返す' return'を使っています。正しく理解していれば、タグを配列に入れ、関数の最後に配列全体を返すべきです。 –

+1

は復帰後にブレークを使用しても意味がありません。ステートメントには到達できません。 if(stripos()!== false)の2番目のパラメータにこれを使用します。 –

答えて

0

あなたがちょうどあなたのif文でvariabled混ざっようだ:

+0

ありがとうございました。特にA.L. – hs1972

+0

あなたの編集は、私が今行ったテストで完璧に機能しました。 – hs1972

+0

私はいつもうれしいです。私の答えを受け入れるようにマークしてください。 –

0

私が正しく理解した場合、あなたの機能に渡された$tag_nameに一致するタグを探しています。 (私が正しい場合)あなたのstriposで あなたはinverted parameters持っている: 1.文字列に

チェックを見つけるため 2.あなたのキーワードを結果が!== falseであれば理由であれば、単純な、その結果にfalse(See the red section in the doc)を返す0(文字列の最初の出現時)。

foreach($tags as $tag => $values) { 
    $current_tag = $tag; // Current tag is the name of the tag, like Womens Sports Shoe or Womens Tracksuit Pants 
    foreach($values as $value) { 
     if (strtolower($value) == strtolower(trim($tag_name)) || stripos(trim($tag_name), $current_tag )) { 
      return $current_tag; // Returns tag name, i.e. 'Womens Sports Shoe' or 'Womens Tracksuit Pants' 
      break; 
     } 
    } 
} 
0

はこの試みる

if (strtolower($value) == strtolower($tag_name) || stripos($tag_name, $current_tag )) { 

は、タグの最初の出会いの後

if (strtolower($value) == strtolower($tag_name) || stripos($tag_name, $value )) {