doumi7854 2017-06-01 16:03
浏览 48
已采纳

在数组中搜索唯一元素的算法?

Which algorithm to use for searching unique element in array?

For example array is:

$arr = [
   ["date" => "2015/04/05",
   "country" => "UK",
   "number" => 3],

   ["date" => "2015/04/05",
   "country" => "UK",
   "number" => 3],

   ["date" => "2015/04/05",
    "country" => "UK",
   "number" => 3],

   ["date" => "2015/04/05",
    "country" => "UK",
   "number" => 4],

];

So, I need to count how much element with unique number?

In result I should get the following structure:

["UK" => array("total" => "2")]

Where total is number of unique number in array.

I tried as:

$output = [];

foreach ($arr as $k => $value) {

            $output[
                $value[
                    "country"
                ]][$value["date"]][$value["number"]
            ] = true;
        }

        foreach ($output as $k => $v) {

            foreach ($v as $c => $t) {

                $arr[$k][$c] = count($t);
            }
        }

But this code looks so awful, with loops. Also I think there is a trivial algorithm to resolve such issues.

  • 写回答

3条回答 默认 最新

  • douxiza9868 2017-06-01 16:30
    关注
    $arr = [
       ["date" => "2015/04/05", "country" => "UK", "number" => 3],
       ["date" => "2015/04/05", "country" => "UK", "number" => 3],
       ["date" => "2015/04/05", "country" => "UK", "number" => 3],
       ["date" => "2015/04/05", "country" => "UK", "number" => 4],
    ];
    
    $result=array();
    foreach($arr as $value)
    {
        $result[$value["country"]][$value['number']] = 1;
    }
    
    foreach ($result as $country => $a) {
        $answer[$country]['total'] = count($a);
    }
    
    print_r($answer);
    

    Result:

    Array
    (
        [UK] => Array
            (
                [total] => 2
            )
    
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画