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 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图