-4

私の問題は、配列 5,12 に 2 つの数値があることです。私の問題は、12 の「1」が原因で、以下のコードが「1」を true として返すことです。12 の数値 1 が表示されます。番号全体を読んでください。

<?php 
$pos = strpos($foo,"1");

if($pos === false) {
    // do this if its false
    echo "<img src='../PICS/no.png' width='20' height='20' />"; 
}
else {
    echo "<img src='../PICS/yes.png' width='20' height='20' />"; 
} 
?>
4

2 に答える 2

4

使用している関数の署名は次のとおりです。

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

最初の引数として配列を与えている場合...

<?php
$foo = array(5,12);
$pos = strpos($foo,"1");

...配列は文字列にキャストされ、通知が表示されます...

警告: strpos() は、パラメーター 1 が文字列であると想定し、配列が指定されています

結果の文字列には、文字通り「配列」が含まれます。

var_dump( @(string)array(5,12) ); // string(5) "Array"

にはそれが含まれていないため、検索1は常に失敗します。Array

于 2012-12-05T17:46:06.063 に答える
3

使用するin_array()

if (in_array(1,$myarray)){
    // found in the array
}
于 2012-12-05T17:38:54.517 に答える