我有以下数组:
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回答)