in_array找不到值

时间:2016-04-07 09:18:41

标签: php mysql

我有以下数组:

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";
 }

我做错了什么?

2 个答案:

答案 0 :(得分:2)

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

你必须循环:

foreach($safe as $s) {

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

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

123或" 123"

答案 1 :(得分:0)

你宣布了一个严格的'查看in_array

因此,它也将检查类型。看作你的搜索参数是一个字符串,它不会匹配数组中的整数。

试试这个(当您对下面提到的问题进行排序时):

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

但是在您检查的阵列中有单独的阵列。 in_array只会检查所提供数组的直接值。请查看this问题,找出解决问题该部分的可能方法。 (或Delphines回答)