$tmp=array();
foreach($test as $v){
  $tmp[key($v)][]=current($v);
}
$test=$tmp;

解决方案 »

  1.   

    输出结果$test=array
    (
        'manager'=>array('ken','hongtao'),
    'warehouse'=>array('cqh'),
        'sales'=>array('gao','tt','ok'),
        'purchase'=>array('purchase')
    )出入在哪里?
      

  2.   

    unset($test[2]);
    $tmp=array();
    foreach($test as $v){
      $tmp[key($v)][]=current($v);
    }
    $test=$tmp;这下没出入了吧-________-
      

  3.   

    能再帮下吗?如何将这个结果写入到文件? 即我想把结果按这个格式写入到一个临时文件中:$test=array (  
           'manager'=  >array('ken','hongtao'),  
           'warehouse'=  >array('cqh'),  
           'sales'=  >array('gao','tt','ok'),  
           'purchase'=  >array('purchase'));
      

  4.   

    function print_array($str,$cp=" ")
    {
    $return="array(\r\n";
    foreach($str as $k=>$v){
    $return.="$cp'$k'=>".(is_array($v)?print_array($v,$cp." "):"'$v'")."\r\n";
    }
    $return.="$cp);";
    return $return;
    }$test = array (
      0 =>   array (    'manager' => 'ken'  ),
      1 =>   array (    'manager' => 'hongtao'  ),
      2 =>   array (    'warehouse' => 'cqh'  ),
      3 =>   array (    'sales' => 'gao'  ),
      4 =>   array (    'sales' => 'tt'  ),
      5 =>   array (    'purchase' => 'purchase'  ),
      6 =>   array (    'sales'    => 'ok' ));
    $tmp=array();
    foreach($test as $v){
      $tmp[key($v)][]=current($v);
    }file_put_contents($filename,"$test=".print_array($tmp));
      

  5.   

    $return.="$cp);";
    这里多了个分号,改为
    $return.="$cp)";
      

  6.   

    这个函数改为如下function str_from_array($str,$cp=" ")
    {
    $return="";
    foreach($str as $k=>$v){
    $return.=($return?",\r\n$cp":"\r\n$cp")."'$k'=>".(is_array($v)?str_from_array($v,$cp." "):"'$v'");
    }
    return "array(".$return."\r\n$cp)";
    }