in_array找不到值


in_array does not find value

我有以下数组:

Array
(
    [0] => Array
        (
            [video_id] => 161162806
        )
    [1] => Array
        (
            [video_id] => 161736574
        )
    [2] => Array
        (
            [video_id] => 156382678
        )    
)

我试图找到一个值,但即使它在数组中,它也找不到

if(in_array("161162806", $safe, true)) {      
 echo "approved video";
  } else { 
  echo "non-approved video";
 }

我做错了什么?

这是因为数组中有数组(多维数组)。

你必须循环:

foreach($safe as $s) {
if(in_array("161162806", $s)) {      
 echo "approved video";
  } else { 
  echo "non-approved video";
 }
}

PS:如果你想同化整数和字符串,请删除true参数:

123或"123"

您已经声明了对in_array的"严格"检查。

因此,它也将检查类型。由于您的搜索参数是一个字符串,因此它与数组中的整数不匹配。

试试这个(当你已经解决了下面提到的问题):

if(in_array("161162806", $safe)) {      
   echo "approved video";
} else { 
   echo "non-approved video";
}

但是在你要检查的数组中有单独的数组。in_array将仅检查所提供的数组的直接值。看看这个问题,找出解决这部分问题的可能办法。(或Delphines回答)