$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')
);要求:数组中的相同title值不能同时多余2条,即只能 <=2 条,把多余的过滤掉
需要的结果如下所示:
$param = array(
        'A1' => array('title'=>'标题001','content'=>'content001'),
        'A4' => array('title'=>'标题003','content'=>'content004'),
'A5' => array('title'=>'标题003','content'=>'content004'),
        'A8' => array('title'=>'标题001','content'=>'content005'),
        'A9' => array('title'=>'标题005','content'=>'content005')
);

解决方案 »

  1.   

    另外,去掉A6,A7可以理解,去掉A3的准则又是什么?准则混乱,很难写
      

  2.   

     title的值 如果相同 只能出现2条,把其余的去掉
      

  3.   

    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);
      

  4.   

    <pre>
    <?php
      $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')
      );
      $tmp = array();
      foreach($param as $r) {
        /*
        if(!isset($tmp[$r['title']])) {
          $tmp[$r['title']][] = $r;
          continue;
        }*/
        // 上面省略的话,就要用@抑制$tmp不存在索引时的错误信息输出
        if(@count($tmp[$r['title']]) < 2) {
          $tmp[$r['title']][] = $r;
        }
      }
      print_r($tmp);
    ?>
    </pre>
      

  5.   

    $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')
    }上面4条title相同,只保留两条:
    我需要把上面的数组变为如下结果:
    $param = array(
      'id1' => array('title'=>'AAA'),
      'id2' => array('title'=>'BBB'),
      'id3' => array('title'=>'CCC'),
    'id4' => array('title'=>'CCC'),
    }
      

  6.   

    title相同值最多只能出现两次
      

  7.   


    $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]);
      }
    }
      

  8.   


    $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')
    );
    $array = array();
    foreach ($param as $key=>$value){
    @$array[$value['title']]++;//不加@号会报undefine的错误
    if ($array[$value['title']] > 2){
    unset($param[$key]);
    }
    }
    echo "<pre>";
    print_r($param);