$arr=array
(
    'name' => array
        (
            0 =>'地砖',
            1 =>'',
            2 => '空心砖',
            3 => '地砖',
        ),
    'cunit' => array
        (
            0 => '块',
            1 => '',
            2 => '块',
            3 => '块'
        ),
 
    'unitprice' => array
        (
            0 => 35,
            1 => '',
            2 => 3.5,
            3 => 35
        ),
 
  'pronum' => array
       (
            0 => 2,
            1 => '',
            2 => 2,
            3 =>''
        ),
   'summoney' => array
        (
            0 =>'', 
            1 =>'', 
            2 =>'', 
            3 =>'' 
        )    
);
$new_data=array();
foreach($arr as $k=>$v){
    if($k=='name' || $k=='pronum'){
        foreach($v as $newk=>$newv){
            if($newv!=''){
                $new_data[$k][]=$newv;
            }
            
        }
    }
}
print_r($new_data);
[code=php]
Array
(
    [name] => Array
        (
            [0] => 地砖
            [1] => 空心砖
            [2] => 地砖
        )    [pronum] => Array
        (
            [0] => 2
            [1] => 2
        ))
[/code]

解决方案 »

  1.   

    其实处理成这样才便于后续处理Array
    (
        [0] => Array
            (
                [name] => 地砖
                [cunit] => 块
                [unitprice] => 35
                [pronum] => 2
                [summoney] => 
            )    [2] => Array
            (
                [name] => 空心砖
                [cunit] => 块
                [unitprice] => 3.5
                [pronum] => 2
                [summoney] => 
            ))$k = array_keys($data);
    foreach(call_user_func_array('array_map', array_merge(array(null), $data)) as $i=>$r) {
      $r = array_combine($k, $r);
      if($r['name'] && $r['pronum']) $res[$i] = $r;
    }
      

  2.   

    谢谢xuzuning版主。这样处理周全点,同时谢谢luo19880415