1

配列を針と干し草の両方として使用して、配列内で初めて何かを見つけようとしました。したがって、2 つの配列の例:

私の動的に形成された配列:

Array ( 
    [0] => 
    [1] => zpp 
    [2] => enroll 
) 

私の静的比較配列:

Array ( 
    [0] => enroll 
) 

そして私のin_array()if文:

if (in_array($location_split, $this->_acceptable)) {
   echo 'found';
}
$location_split; // is my dynamic
$this->_acceptable // is my static

しかし、私が期待するように、これから発見されたものは印刷されませんか?ここで私は正確に何に失敗していますか?

4

3 に答える 3

3

私があなたを正しく理解していれば、最初の配列のエントリが 2 番目の配列に存在するかどうかを確認したいと考えています。

array_intersectを参照すると、渡したすべての配列に存在するものの配列が返されます。

$common = array_intersect($this->_acceptable, $location_split);
if (count($common)) {
    echo 'found';
}

その配列の数が少なくとも 1 の場合、共通の要素が少なくとも 1 つあります。動的配列の長さと等しく、配列の値が異なる場合、それらはすべてそこにあります。

そしてもちろん、配列はどの値が一致したかを教えてくれます。

于 2012-11-19T20:46:28.653 に答える
1

配列に要素が含まarray('enroll')れていないためです(のみ'enroll')。

array_diff()結果が元の配列と同じである場合、一致は見つかりません。

于 2012-11-19T20:43:38.167 に答える
0

in_array(針と干し草の山)のパラメータを交換しています。それは、

 if(in_array($this->_acceptable, $location_split))
{
  echo 'found';
 }

編集:を使用してみてくださいarray_intersect

デモ

于 2012-11-19T20:45:26.773 に答える