Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php in_array()应为数组错误(带数组)_Php_Arrays - Fatal编程技术网

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
)