php数组去重(已解决)

@Ta 2021-02-03发布,2021-02-03修改 3844点击
输出:print_r($weather);
输出内容:Array ( [0] => Array ( [0] => 20210201 [1] => 小雨/晴 [2] => Array ( [0] => 10 [1] => 2 ) [3] => 西北风3-4级/西北风3-4级 ) ) Array ( [0] => Array ( [0] => 20210201 [1] => 小雨/晴 [2] => Array ( [0] => 10 [1] => 2 ) [3] => 西北风3-4级/西北风3-4级 ) [1] => Array ( [0] => 20210202 [1] => 多云/晴 [2] => Array ( [0] => 10 [1] => 3 ) [3] => 东风3-4级/东风3-4级 ) ) Array ( [0] => Array ( [0] => 20210101 [1] => 晴/晴 [2] => Array ( [0] => 5 [1] => -4 ) [3] => 西南风1-2级/西南风1-2级 ) ) Array ( [0] => Array ( [0] => 20210101 [1] => 晴/晴 [2] => Array ( [0] => 5 [1] => -4 ) [3] => 西南风1-2级/西南风1-2级 ) [1] => Array ( [0] => 20210102 [1] => 多云/晴 [2] => Array ( [0] => 7 [1] => 0 ) [3] => 东风1-2级/东风1-2级 ) ) Array ( [0] => Array ( [0] => 20210101 [1] => 晴/晴 [2] => Array ( [0] => 5 [1] => -4 ) [3] => 西南风1-2级/西南风1-2级 ) [1] => Array ( [0] => 20210102 [1] => 多云/晴 [2] => Array ( [0] => 7 [1] => 0 ) [3] => 东风1-2级/东风1-2级 ) [2] => Array ( [0] => 20210103 [1] => 多云/多云 [2] => )
....此处非完整,后面也是一样的。
数组去重:去除日期相同的数据,保留不一样的天气
回复列表(6|隐藏机器人聊天)
  • @Ta / 2021-02-03 / /

    @森森,能格式化下吗?这样看不懂

  • @Ta / 2021-02-03 / /

    @森森,你把 $weather 变量编码成 json 格式吧,真不好看

    echo json_encode($weather);
    
  • @Ta / 2021-02-03 / /

    @森森,尝试按照你的数组格式写了下去重的

    <?php
    $weather = [
        [
            20210201,
            '小雨/晴天',
            [
                10, 2
            ],
            '西北风3-4级/西北风3-4级'
        ],
        [
            20210201,
            '小雨/晴天',
            [
                -2, 5
            ],
            '西北风1-4级/西北风2-4级'
        ],
        [
            20210202,
            '晴天',
            [
                8, 6
            ],
            '西北风3-1级/西北风3-4级'
        ],
    ];
    
    
    print_r(arr_deduplication($weather));
    
    /**
     * 去除重复的日期,并保留最新的日期的那个结果
     * @param $weather
     * @return array
     */
    function arr_deduplication($weather)
    {
        $arr = [];
        foreach ($weather as $v) {
            $arr[$v[0]] = $v;
        }
    
        //array_values:删除键名,但是保留值
        return array_values($arr);
    }
    
  • @Ta / 2021-02-03 / /
    @NowTime,谢谢,这个方法试了去除不了,我重新修改了一下方式,不用对数组进行修改 再后面加一个计算判断就行了 遇到重复的不计算就行了
  • @Ta / 2021-02-03 / /

    @森森,因为你给的数据我完全没看懂,只取片面进行编写代码

添加新回复
回复需要登录