我想foreach 这个  array(
        array('enter' = 1,
            'd' = ',',
            ),
        array('enter' = 2,
            'd' = ',',
            ),
        array('enter' = 1,
            'd' = ',',
            ),
    );
 将enter = 1相同的字段 又组合为一个数组  成这样 array(
        array('enter' => 1,
                array(
                    'd'=>1,
                    ),
                array(
                    'd'=>2,
                ),
            ),
        array('enter' => 2,
            'd' => ',',
            ), 
    );请教高手!  请教高手!!!!

解决方案 »

  1.   


    $arr = array(
      array('enter' => 1,
      'd' => ',',
      ),
      array('enter' => 2,
      'd' => ',',
      ),
      array('enter' => 1,
      'd' => ',',
      ),
      );
    $tmp = array();
    foreach($arr AS $v)
    {
    if(isset($tmp[$v["enter"]]))
    {
    if(($t = sizeof($res[$tmp[$v["enter"]]])) === 2)
    {
    array_pop($res[$tmp[$v["enter"]]]);
    $res[$tmp[$v["enter"]]] = array_merge($res[$tmp[$v["enter"]]], array(array("d" => 1), array("d" => 2)));
    }
    else
    {
    $res[$tmp[$v["enter"]]] = array_merge($res[$tmp[$v["enter"]]], array(array("d" => ++$t)));
    }
    }
    else
    {
    $tmp[$v["enter"]] = sizeof($tmp);
    $res[$tmp[$v["enter"]]] = $v;
    }
    }print_r($res);
    /**Array
    (
        [0] => Array
            (
                [enter] => 1
                [0] => Array
                    (
                        [d] => 1
                    )            [1] => Array
                    (
                        [d] => 2
                    )        )    [1] => Array
            (
                [enter] => 2
                [d] => ,
            ))/**/