Php 将json转换为数组并比较差异

Php 将json转换为数组并比较差异,php,arrays,json,api,Php,Arrays,Json,Api,我试图从这两个json获取返回的结果,并比较差异,以仅显示唯一的值。我尝试过许多其他方法,但似乎没有任何效果。这段代码给了我一个参数#1不是数组…有什么帮助吗 <?php $json = file_get_contents("http://ebird.org/ws1.1/data/obs/region/recent?rtype=subnational1&r=US-AZ&back=7&fmt=json"); $json2 = file_get_contents("ht

我试图从这两个json获取返回的结果,并比较差异,以仅显示唯一的值。我尝试过许多其他方法,但似乎没有任何效果。这段代码给了我一个参数#1不是数组…有什么帮助吗

<?php
$json = file_get_contents("http://ebird.org/ws1.1/data/obs/region/recent?rtype=subnational1&r=US-AZ&back=7&fmt=json");
$json2 = file_get_contents("http://ebird.org/ws1.1/data/obs/region/recent?rtype=subnational1&r=US-NV&back=7&fmt=json");

$array1 = json_decode($json, TRUE);
$array2 = json_decode($json2, TRUE);

$result = array_diff($array1, $array2);

echo $result ;

?>

现在的结果是“数组”,但我知道有区别。。。。是否有某种方法可以比较返回的json数据中的一个字段……在这个实例com名称中

  • 您需要使用从这些URL获取数据
  • 您需要将
    true
    作为第二个参数传递,才能以数组的形式获得结果:

  • 变量是字符串(URL)而不是JSON。 您正在尝试对url进行json_解码


    如果我访问url,我会得到XML。。。不是JSON。

    您所做的实际上是尝试将URL地址解码为JSON格式,而不是在这些特定URL地址中找到的内容。 为了用JSON解码content而不是URL本身,您可以使用以下代码:

    $content = file_get_contents($xml); //get the content that is found in the url that $xml holds
    $json = json_decode($content);  //now json decode the content , and not the url itself
    
    我希望它能帮助你理解你做错了什么。使用file_get_contents()和json_decode()函数是最简单的部分,首先您必须计划代码实际应该做什么。
    祝你好运。

    正如上面的海报所说,你需要实际检索文件。调用json_decode只会尝试解码json字符串,这根本不是您想要实现的

    嗯。你说的是json,但是你的变量名是$xml和$xml2?很抱歉,我是先用xml尝试的。我已经更新了代码。我看到我更新了url,所以现在它返回json-&fmt而不是&format。+1用于捕获它们实际上并没有捕获该数据。“我忽略了这一点,”乔纳森·安科菲说,“没有。还是给XML。。。即便如此。您需要获取URL的内容并尝试对其进行json_解码,而不是对URL本身进行json_解码。请尝试
    $xml=file\u获取内容(“http://blahblahblah");
    $xml2=文件获取内容(“http://blahblahblah");
    一旦你找到了正确的url,首先我需要将url转换为json对象,解码然后比较?@JonathanCoffey,没有。您首先必须获取url中的内容。输入此特定url后,url和可以看到的内容之间存在差异。例如:$url=“www.bbc.com”;将$url转换为json只会转换字符串“www.bbc.com”。如果您想实际转换bbc.com中显示的文章,您首先必须使用file_get_contents()获取它们。
    $content = file_get_contents($xml); //get the content that is found in the url that $xml holds
    $json = json_decode($content);  //now json decode the content , and not the url itself