0

cssファイルから取得したクラス名の配列は次のとおりです

test array after printing values:

Array
(
  [0] => #sa_nav
  [1] => #sa_nav ul li.account
  [2] => .loyaltyBox
)
 if(array_search("#sa_nav",$test))
 {
  echo 'Element is exist';
 }
 else
 {
  echo 'Element is not exist';
 }

配列に要素が存在しますが、「要素が存在しません」と出力されます。助けてください

4

7 に答える 7

4

使用in_array機能

$test = array("#sa_nav", "#sa_nav ul li.account", ".loyaltyBox");

if (in_array("#sa_nav", $test)) {
  echo 'Element is exist';
} else {
  echo 'Element is not exist';
}

// 出力

Element is exist
于 2013-03-11T06:53:30.217 に答える
2

array_searchは、配列で特定の値を検索し、成功した場合は対応するキーを返します。

つまり、trueまたはfalseを返さないので、in_array()php関数を使用します。

in_array値が配列に存在するかどうかを確認します

$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");

if(in_array("#sa_nav",$test))
{
  echo 'Element is exist';
}
else
{
  echo 'Element is not exist';
}

TRUEFASLEを検索して返すため

function search_array($arrays, $cssSelector)
{
   foreach($arrays as $key => $array)
   {
      if ( $array === $cssSelector )
         return true;
   }
   return false;
}

そしてそれを次のように呼びますsearch_array($array,'#sa_nav');

于 2013-03-11T06:54:22.200 に答える
2

array_search()は値を検索し、一致する場合は対応するキーを返します。

今あなたの場合 -

#sa_nav キー値は0

したがって、IFループに入ると、次のように評価されます-

array_search("#sa_nav",$test) return value is `0` [Zero].

したがって、式は次のように評価されます -

if(0)

それでそれは出力します-

Element is not exist

いいえ、このコードチャンクを試してみると、次のように評価されますtrue

$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");

 if(array_search(".loyaltyBox",$test))
 {
  echo 'Element is exist';
 }
 else
 {
  echo 'Element is not exist';
 }

in_array()コードを機能させるには、他のほとんどの回答で提案されている方法を試すことができます。

于 2013-03-11T07:01:07.730 に答える
1

マニュアルは常に最初に見る場所です:

array_search

針が配列内で見つかった場合はそのキーを返し、それ以外の場合はFALSEを返します。

警告

この関数はブール値のFALSEを返す場合がありますが、FALSEと評価される非ブール値を返す場合もあります。詳細については、ブール値のセクションをお読みください。この関数の戻り値をテストするには、===演算子を使用します。

于 2013-03-11T06:56:09.640 に答える
0

このコードを確認してください

$test = array("#sa_nav","#sa_nav ul li.account",".loyaltyBox");

 if(in_array("#sa_nav",$test))
 {
  echo 'Element is exist';
 }
 else
 {
  echo 'Element is not exist';
 }
于 2013-03-11T06:54:58.267 に答える
0

Php組み込み関数を使用できます

array_search — 指定された値の配列を検索し、成功した場合は対応するキーを返します

またはまた使用することができます

in_array — 値が配列に存在するかどうかを確認します

于 2013-03-11T07:01:20.087 に答える
0

まず第一に、var_dump()配列が何を構成するかを示すために を使用することを考慮して、このような質問をするとき。

第二に、あなたの状態の単純な変化はそれを行うべきです:

if (false !== array_search("#sa_nav",$test)) {
}

#sa_navが最初のアイテムである場合、array_search()を返し0、これは として評価されfalseます。array_search()特に意味のある方法での戻り値を実際に使用していないことを考えると、in_array()代わりに常にブール値を返す which を使用することもできます。

于 2013-03-11T07:35:05.493 に答える