首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php中来自JSON对象数组的重复字段/值

php中来自JSON对象数组的重复字段/值
EN

Stack Overflow用户
提问于 2018-08-30 03:12:56
回答 1查看 73关注 0票数 0

我在一个网站上工作,在这个网站上我想从JSON对象数组中删除重复的字段。

我拥有的JSON对象数组是:

"rental_rates": [{
    "rate_id": 170,
    "uuid": "a3a14d20-63d1-11e8-b047-89e5d3a9513d",
    "owner_id": 38,
    "item_id": 394,
    "name": "daily",
    "term": "daily",
    "currency": "dollars",
    "rate": "56.00",
    "min_charge": "56.00",
    "created_at": "2018-05-30 06:20:43",
    "updated_at": "2018-05-30 06:21:07"
}, {
    "rate_id": 172,
    "uuid": "a3a1c500-63d1-11e8-8740-8925bbb8ada8",
    "owner_id": 38,
    "item_id": 394,
    "name": "weekly",
    "term": "weekly",
    "currency": "dollars",
    "rate": "677.00",
    "min_charge": "56.00",
    "created_at": "2018-05-30 06:21:00",
    "updated_at": "2018-05-30 06:21:07"
}],

我用来从JSON对象数组中提取字段/值的代码是:

foreach ($data['item']->rental_rates as $rental_rate)
{
echo '<span class="rental_term" style="text-align:right">'."minimum".'</span>';
echo '<span class="rental_price" style="text-align:right">$'.floatval($rental_rate->min_charge).'</span><br>';

}

上面的代码拉取以下数据,我只想显示一个数据。

minimum $56
minimum $56

问题陈述:

我想知道我需要在foreach循环中做什么更改,以便它只提取一个字段和值,如下所示,

minimum $56
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-30 03:27:50

两种方式。存储已经显示的内容并检查它:

$shown = array();
foreach ($data['item']->rental_rates as $rental_rate)
{
    if(!in_array($rental_rate->min_charge, $shown)) {
        $shown[] = $rental_rate->min_charge;
        echo '<span class="rental_term" style="text-align:right">'."minimum".'</span>';
        echo '<span class="rental_price" style="text-align:right">$'.floatval($rental_rate->min_charge).'</span><br>';
    }
}

或者创建一个由min_value索引的数组,这样就只有一个数组(只适用于>= 7.0.0版本的对象):

$rates = array_column($data['item']->rental_rates, null, 'min_charge');
foreach $rates as $rental_rate)
{
    echo '<span class="rental_term" style="text-align:right">'."minimum".'</span>';
    echo '<span class="rental_price" style="text-align:right">$'.floatval($rental_rate->min_charge).'</span><br>';
}

对于PHP < 7.0.0,将JSON解码为传递true作为第二个参数的数组,并在上面的代码中使用$data['item']['rental_rates']$rental_rate['min_charge']

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52084583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档