Php 从所有JSON中获取列出最多的值

Php 从所有JSON中获取列出最多的值,php,json,Php,Json,我有多个JSON字符串,它们存储在我的数据库中 下面是3个示例,展示了它们的外观: 示例1 { "request": { "city": "Chicago", "country": "USA", "gender": "m" } } 示例2 { "request": { "city": "Chicago", "country": "USA", "gender": "f",

我有多个JSON字符串,它们存储在我的数据库中

下面是3个示例,展示了它们的外观:

示例1

{
    "request": {
        "city": "Chicago",
        "country": "USA",
        "gender": "m"
    }
}
示例2

{
    "request": {
        "city": "Chicago",
        "country": "USA",
        "gender": "f",
        "role": "admin"
    }
}
示例3

{
    "request": {
        "city": "Paris",
        "country": "France",
        "gender": "m",
        "language": "French",
        "role": "admin"
    }
}
我想将所有JSON相互比较,并创建一个新的JSON,其中列出的值最多。结果应该是这样的:

结果

{
    "request": {
        "city": "Chicago",
        "country": "USA",
        "gender": "m",
        "role": "admin"
    }
}
为什么?

因为我们有3个JSON和

  • Chicago
    2x
  • 美国
    出现2x
  • m
    appeard 2x
  • 管理员
    出现2x
我怎样才能得到我需要的JSON


PS:我不需要完成的代码。如果有人能告诉我怎么做就足够了。

我会为每个JSON键(角色、性别、城市…)创建一个数组

然后,当我解析JSON时,我会将值添加到特定数组中

最后,只需计算数组中使用最多的值并输出值

$city = ["Chicago", "Los Angeles", "Florida", "Los Angeles", "Chicago", "Chicago", "Los Angeles", "Los Angeles"];

$count = array_count_values($city);

arsort($count); 

$mostUsedCity = key($count); 

echo $mostUsedCity;

输出:Los Angeles

这不是平均值,这是最大值。您希望显示次数最多/最大的项目。@NawedKhan哦,对不起,您是对的!列出最多的值应该在新的JSON中创建。请参阅,谢谢您的回答。这意味着我必须先为所有列创建数组?没错。那将是我的方法。城市、国家、性别的数组。最后,为每一个获取最常用的值,并从中创建一个新的JSON。这是一个创建函数的好方法。好的,听起来是个好方法。太好了,谢谢你的帮助@RezaSaadati没问题,如果我能找到另一种方法来解决这个问题,我会考虑的