Array
(
[0] => 159042564114859_722842697734840
[1] => 180466813056_10152147419628057
[2] => 201613513237343_622449081153782
)
$post_ids = array('201613513237343_622449081153782', '180466813056_10152147419628057', '159042564114859_722842697734840');
foreach($posts->data as $post)
{
if(array_search( $post->id, $post_ids ))
{
print '<p>FOUND ' . $post->id . '<p>';
}
}
输出:
FOUND 159042564114859_722842697734840
FOUND 180466813056_10152147419628057
由于某种原因,它没有检测到数组中的第三项,索引为3,值为201613513237343_622449081153782
输出:
foreach($posts->data as $post)
{
print '<p>post->id: ' . $post->id . '</p>';
}
post->id: 159042564114859_722842697734840
post->id: 180466813056_10152147419628057
post->id: 201613513237343_622449081153782
所以我知道数据在那里,我在使用array_search函数做错了什么?
答案 0 :(得分:5)
它不会输出第一个帖子ID,因为array_search
会返回index
,即0
。
将支票更改为:
if (array_search($post->id, $post_ids) !== false) {
明确与false
进行比较。
0 == false; // true
0 === false; // false
PHP对于它的参数和返回值并不是很好,但大多数搜索函数使用某种“未找到”值。 -1
,false
和null
是用于此目的的常用值。