Php in_array()应为数组错误(带数组)
我有以下代码:Php in_array()应为数组错误(带数组),php,arrays,Php,Arrays,我有以下代码: <?php $videoID="gZQc5WGjUJU"; $url = 'https://www.googleapis.com/youtube/v3/videos?id='.$videoID.'&key=AIzaSyBbwUlQ6qRC7fgEZPO85tsNQg75x01DS14&part=contentDetails'; $content = file_get_contents($url); $json = json_decode($content,
<?php
$videoID="gZQc5WGjUJU";
$url = 'https://www.googleapis.com/youtube/v3/videos?id='.$videoID.'&key=AIzaSyBbwUlQ6qRC7fgEZPO85tsNQg75x01DS14&part=contentDetails';
$content = file_get_contents($url);
$json = json_decode($content, true);
$result1= print_r($json[items][0][contentDetails][regionRestriction][allowed]);
if (in_array("DE", $result))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>
现在我尝试检查是否存在值“DE”,但它表示:
Array
(
[0] => NZ
[1] => FI
[2] => LU
[3] => MP
[4] => SE
[5] => MX
[6] => NO
[7] => NL
[8] => FR
[9] => DK
[10] => GU
[11] => IE
[12] => AS
[13] => US
[14] => AU
[15] => IS
[16] => GB
[17] => KR
[18] => BE
[19] => CA
)
警告:in_array()要求参数2为数组,第17行的/customers/1/d/f/50downloads.com/httpd.www/test.php中给出了null
找不到匹配项
有人知道原因是什么吗?结果应该是“不存在”或“不存在”它看起来像这一行
if(在数组中(“DE”,$result))
…本来应该是这样的:
if(在数组(“DE”中,$result1))
…但这是一个字符串,因为您已将
$result1
分配给打印的结果。正如其他人在评论中所说,您可以删除print\r
,只需将$result1
设置为JSON数组。1)您可以使用$result
而不是$result1
2)执行一个简单的var\u转储($result1)
并查看此变量中的内容。另外,请阅读有关print\u r()
的手册页,并查看它返回的内容。您在哪里分配$result
?您的代码显示您将print\r
的字符串结果分配给$result1
…从result1
分配中删除。只需$result=$json[items][0][contentDetails][regionRestriction][allowed]
OP也可能不想指定print\r()
的返回值,而是实际数组。不,这不是问题所在,我只是在复制时把它弄混了。。。它不想接受阵列…谢谢。编辑我的答案以反映实际问题。
Array
(
[0] => NZ
[1] => FI
[2] => LU
[3] => MP
[4] => SE
[5] => MX
[6] => NO
[7] => NL
[8] => FR
[9] => DK
[10] => GU
[11] => IE
[12] => AS
[13] => US
[14] => AU
[15] => IS
[16] => GB
[17] => KR
[18] => BE
[19] => CA
)