数组中,某个值相同找到另一个值最大的数组

以下数组:

$arr = array(
        0 => array(u_id => 1, time => 1),
        1 => array(u_id => 1, time => 2),
        2 => array(u_id => 2, time => 4),
        3 => array(u_id => 2, time => 3)
    )

以上数组是不规律的,我想找出数组中u_id相同,但是time最大的值,请问应该怎么找?多谢啦。

// ###思路是如果id对应的time没有值,那么赋值;如果有,那么做比较,大则替换。

$ids_arr = [];

foreach ($arr as $k => $v) {
   if (!isset($ids_arr[$v['u_id']])) {
       $ids_arr[$v['u_id']] = $v['time'];
   } else {
       $v['time'] > $ids_arr[$v['u_id']] && $ids_arr[$v['u_id']] = $v['time'];
   }
}

print_r($ids_arr);

以上。

// 循环比较,你试试

$result = [];
function test($arr, $opt)
{   
    global $result;
    static $opts= [];
    if(in_array($opt, $opts)) return;
    $opts[] = $opt;
    $max = 0;
    foreach ($arr as $key => $value) 
    {
        if(reset($value) == $opt ) if($max < $next = next($value)) $max = $next;
    }
    $result[$opt] = $max;
}
for($i = 0;$i<count($arr);$i++)
{
   test($arr, $arr[$i]['u_id']);
}
print_r($result);
$res=[];
$arr = array(
        0 => array('u_id' => 1, 'time' => 1),
        1 => array('u_id' => 1, 'time' => 2),
        2 => array('u_id' => 2, 'time' => 4),
        3 => array('u_id' => 2, 'time' => 3)
    );
foreach($arr as $k=>$v){
    if(!isset($res[$v['u_id']])) {
        $res[$v['u_id']] = $v;
    }else {
        if($v['time'] > $res[$v['u_id']]['time']){
            $res[$v['u_id']]['time'] = $v['time'];
        }
    }
}
print_r(array_values($res));
Array
(
    [0] => Array
        (
            [u_id] => 1
            [time] => 2
        )

    [1] => Array
        (
            [u_id] => 2
            [time] => 4
        )

)
foreach ($arr as $k => $v) {
  if ($k === 0) {
    continue;
  }
  if ($arr[$k-1]['u_id'] === $v['u_id']) {
    if ($arr[$k-1]['time'] < $v['time']) {
      unset($arr[$k-1]);
      continue;
    }
    $arr[$k]['time'] = $arr[$k-1]['time'];
    unset($arr[$k-1]);
  }
}
  • 关于linux SVN问题
  • 我们是不是不能真正做到网站web服务器端限制用户ip?
  • 求一条sql语句 (分组取前五名)
  • jquery ajax ie8下跨域cookie的问题
  • 关于session的工作原理的问题。
  • 如果一个页面打开了之后空白,你会如何定位问题?如果不是网络、服务器的问题,就是前端问题,该如何定位?
  • PHP 批量插入的时候 判断数据表里面是否重复怎么优化
  • 如何测试语言的性能?
  • .net,java,php这些服务器端的进程是如何获取web客户端传递的参数的?
  • 用户修改一个列表型的数据,后台和数据库互动时应该怎么操作好?
  • 求教:当使用webuploader上传图片时,服务器响应数据内容格式是什么