我有这样一个数组:
$arr = array("lay_id"=>"1",
     "lay_price"=>"5.00",
     "weight"=>array("1","2","3"),
             "weight_price"=>array("10.00","20.00","30.00")
);
我想得到的结果是:$new_arr = array("0"=>array("lay_id"=>"1",
     "lay_price"=>"5.00",
     "weight"=>"1"
             "weight_price"=>"10.00"),
"1"=>array("lay_id"=>"1",
     "lay_price"=>"5.00",
     "weight"=>"1"
             "weight_price"=>"20.00"),
"2"=>array("lay_id"=>"1",
     "lay_price"=>"5.00",
     "weight"=>"1"
             "weight_price"=>"30.00")
);就是说按照后两列分成3个小数组,前2列固定不变,求教如何处理,谢谢

解决方案 »

  1.   

    $arr = array("lay_id"=>"1",
         "lay_price"=>"5.00",
         "weight"=>array("1","2","3"),
                 "weight_price"=>array("10.00","20.00","30.00")
    );
    $res = array();foreach($arr as $key=>$item) {
      if(! is_array($item)) $t[$key] = $item;
      else foreach($item as $i=>$v) {
        if(! isset($res[$i])) $res[$i] = $t;
        $res[$i][$key] = $v;
      }
    }
    print_r($res);Array
    (
        [0] => Array
            (
                [lay_id] => 1
                [lay_price] => 5.00
                [weight] => 1
                [weight_price] => 10.00
            )    [1] => Array
            (
                [lay_id] => 1
                [lay_price] => 5.00
                [weight] => 2
                [weight_price] => 20.00
            )    [2] => Array
            (
                [lay_id] => 1
                [lay_price] => 5.00
                [weight] => 3
                [weight_price] => 30.00
            ))
      

  2.   

    贴个简单易懂的<?php
    $arr = array("lay_id"=>"1",
         "lay_price"=>"5.00",
         "weight"=>array("1","2","3"),
                 "weight_price"=>array("10.00","20.00","30.00")
    );
    $res = array();$pre = array(
    'lay_id'=>$arr['lay_id'],
    "lay_price"=>$arr['lay_price'],
    );
    foreach($arr['weight'] as $i => $weight) {
    $tmp = $pre;
    $tmp['weight'] = $weight;
    $tmp['weight_price'] = $arr['weight_price'][$i];
    $res[] = $tmp;
    }
    print_r($res);