web-dev-qa-db-ja.com

特定の用語が配列に含まれているかどうかはどうすればわかりますか?

私は現在以下のwordpress phpを実行していて、それは私のためにリストを作成しています。

$term = get_term_by( 'id', $ptc, $taxonomy );
echo '<li><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';

ただし、$ termがin_array $ product_termsであるかどうかを確認する必要があるため、次のことを試しました。

$term = get_term_by( 'id', $ptc, $taxonomy );
                if(in_array($term, $product_terms)){ 
                    echo '<li class="current-cat"><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';
                } else {
                    echo '<li><a href="'. home_url() .'/taxon/'. $pt->slug .'/' .  $term->slug . '">' . $term->name . '</a> </li>';
                }

しかし、そのうちの1つが配列内にあることを私が知っているにもかかわらず、それはまだ追加のクラスを持つものを何も返しません。

1
TJ Sherrill

それはあなたの$product_terms配列からの値がどんな種類であるかに依存します。

スラッグのようにそこに文字列がある場合は、おそらく$term->slugが存在するかどうかをチェックしたいでしょう。

オブジェクトがある場合は、配列が連想配列ではなくインデックス付きであることを確認してください。連想配列の場合は、代わりに array_key_exists() を使用してください。

2
onetrickpony