Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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 api从不同的json键中删除重复值_Php_Arrays_Json_Multidimensional Array - Fatal编程技术网

php api从不同的json键中删除重复值

php api从不同的json键中删除重复值,php,arrays,json,multidimensional-array,Php,Arrays,Json,Multidimensional Array,我有一个php脚本,它输出的json响应看起来像这样(如果有关系,下面的响应是通过测试ajax调用输出的)--- 因此,在我的条目中对body和image有重复的值,但其他一切似乎都很好 在我的脚本中,我像这样输出我的值- $entries = $result->entries; foreach ($entries as $ent){ echo $ent->image; echo $ent->title; echo $ent->body; } 我的问题是我不想输出任何

我有一个php脚本,它输出的json响应看起来像这样(如果有关系,下面的响应是通过测试ajax调用输出的)---

因此,在我的
条目中
body
image
有重复的值,但其他一切似乎都很好

在我的脚本中,我像这样输出我的值-

$entries = $result->entries;

foreach ($entries as $ent){
echo $ent->image;
echo $ent->title;
echo $ent->body;
}
我的问题是我不想输出任何带有重复数据的条目,不管标题是否不同。如果图像和主体作为另一个条目是重复的,那么我想跳过它

我怎样才能做到这一点

编辑

来自php print\r的精确JSON响应结构-

stdClass Object
(
    [type] => game
    [typesm] => br
    [entries] => Array
        (
            [0] => stdClass Object
                (
                    [title] => Hang Time Bundle
                    [body] => Score big when you cop the Hang Time Bundle, available now in the Item Shop. Unlock new Styles with Creative Mode Challenges.
                    [image] => https://imageurl.jpeg
                    [time] => 1558532690
                    [meta] => stdClass Object
                        (
                            [mainColor] => #100a0e
                            [adSpace] => 
                        )

                )

            [1] => stdClass Object
                (
                    [title] => Hang Time Set
                    [body] => Score big when you cop the Hang Time Bundle, available now in the Item Shop. Unlock new Styles with Creative Mode Challenges.
                    [image] => https://imageurl.jpeg
                    [time] => 1558515409
                    [meta] => stdClass Object
                        (
                            [mainColor] => #100a0e
                            [adSpace] => 
                        )

                )

您可以使用array_column使条目数组关联并删除重复项

$json = 'json string';
$arr = json_decode($json, true);
$arr['entries'] = array_column($arr['entries'], null, 'body');


foreach ($arr['entries'] as $ent){
    echo $ent['image'];
    echo $ent['title'];
    echo $ent['body'];
}
这样,当您循环到输出时,您只有唯一的值

您也可以使用array_unique,但使数组具有关联性在其他方面也有好处


如果要根据图像和主体删除重复项,请循环阵列并生成复合关联键

$json = 'json string';
$arr = json_decode($json, true);
foreach($arr['entries'] as $e){
    $ent[$e['body'] . " " . $e['image']] = $e;
}
$ent现在是具有唯一“entries”值的新数组

foreach ($ent as $e){
    echo $e['image'];
    echo $e['title'];
    echo $e['body'];
}

您发布的数组中的图像值不相同。“应该是吗?”安德烈亚斯,那是个错误。我更新了它。我尝试了你的两个例子,但再也不能输出任何东西了。我的答案中没有任何输出。我想你知道怎么做。在你的问题中包括了输出。这两个代码都可以使用正确的json。我希望你没想到你会去上班?基于只有body在行上方,数组_列部分
foreach ($ent as $e){
    echo $e['image'];
    echo $e['title'];
    echo $e['body'];
}