所提交的結果如下:
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] => ))
$data=$_POST['sale'];//print_r($data);foreach ($data as $k1 => $v1) {foreach ($v1 as $k2 => $v2) {$new_data[$k2][$k1] = $v2;$new_data[$k2]['username']='admin';}}
我想得到的最終結果是。name中數值不為空白,且pronum數值不為空白的結果。試了下if( $v2!=' ) 不對。特請教各位。謝謝了
回複討論(解決方案)
$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]
其實處理成這樣才便於後續處理
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;}
謝謝xuzuning版主。這樣處理周全點,同時謝謝luo19880415