php - 数组中,某个值相同找到另一个值最大的数组
ringa_lee
ringa_lee 2017-04-11 08:59:32
0
4
349

以下数组:

$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最大的值,请问应该怎么找?多谢啦。

ringa_lee
ringa_lee

ringa_lee

reply all(4)
伊谢尔伦
// ###思路是如果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]);
  }
}
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!