php api从不同的json键中删除重复值
我有一个php脚本,它输出的json响应看起来像这样(如果有关系,下面的响应是通过测试ajax调用输出的)--- 因此,在我的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; } 我的问题是我不想输出任何
条目中
对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'];
}