过滤数组,title相同值最多只能出现两次$param = array(
  'id1' => array('title'=>'AAA'),
  'id2' => array('title'=>'BBB'),
  'id3' => array('title'=>'CCC'),
'id4' => array('title'=>'CCC'),
'id5' => array('title'=>'CCC'),
'id6' => array('title'=>'CCC')
...................
}
我需要把上面的数组变为如下结果:
$param = array(
  'id1' => array('title'=>'AAA'),
  'id2' => array('title'=>'BBB'),
  'id3' => array('title'=>'CCC'),
'id4' => array('title'=>'CCC'),
}

解决方案 »

  1.   

    echo "<pre>\n";
    $param = array(
      'A1' => array('title'=>'标题001','content'=>'content001'),
      'A2' => array('title'=>'标题002','content'=>'content002'),
      'A3' => array('title'=>'标题001','content'=>'content003'),
      'A4' => array('title'=>'标题003','content'=>'content004'),
    'A5' => array('title'=>'标题003','content'=>'content004'),
    'A6' => array('title'=>'标题003','content'=>'content004'),
    'A7' => array('title'=>'标题003','content'=>'content004'),
      'A8' => array('title'=>'标题001','content'=>'content005'),
      'A9' => array('title'=>'标题005','content'=>'content005')
    );
    $arrTmp = array();
    foreach($param as $key => $val) {
       if (!isset($arrTmp[$val['title']])) $arrTmp[$val['title']] = 1;
       else {
           if ($arrTmp[$val['title']] == 2) unset($param[$key]);
           else $arrTmp[$val['title']] += 1;
       }
    }
    print_r($param);又发一帖
      

  2.   

    echo "<pre>\n";
    $param = array(
      'A1' => array('title'=>'标题001','content'=>'content001'),
      'A2' => array('title'=>'标题002','content'=>'content002'),
      'A3' => array('title'=>'标题001','content'=>'content003'),
      'A4' => array('title'=>'标题003','content'=>'content004'),
    'A5' => array('title'=>'标题003','content'=>'content004'),
    'A6' => array('title'=>'标题003','content'=>'content004'),
    'A7' => array('title'=>'标题003','content'=>'content004'),
      'A8' => array('title'=>'标题001','content'=>'content005'),
      'A9' => array('title'=>'标题005','content'=>'content005')
    );
    $arrTmp = array();
    foreach($param as $key => $val) {
      if (!isset($arrTmp[$val['title']])) $arrTmp[$val['title']] = 1;
      else {
      if ($arrTmp[$val['title']] == 2) unset($param[$key]);
      else $arrTmp[$val['title']] += 1;
      }
    }
    print_r($param);
      

  3.   


    $param = array(
                    'id1' => array('title'=>'AAA'),
                    'id2' => array('title'=>'BBB'),
                    'id3' => array('title'=>'CCC'),
                    'id4' => array('title'=>'CCC'),
                    'id5' => array('title'=>'CCC'),
                    'id6' => array('title'=>'CCC')
                  );
    $count = array();
    foreach($param as $k => $v)
    {
      if($count[$v['title']]++ > 1)
      {
        unset($param[$k]);
      }
    }