search

Home  >  Q&A  >  body text

php数组转换的问题

Array(
[server] => Array(
        [0] => hk
        [1] => jp
    )
[fromdate] => Array(
        [0] => 2013-07-17
        [1] => 2013-06-19
))

以上数组如果最快最简单的方法转换成为

Array(
[0] => Array(
    [server] => 'hk',
    [fromdate] => '2013-07-17'
)
[1] => Array(
    [server] => 'jp',
    [fromdate] => '2013-07-17'
))
阿神阿神2897 days ago422

reply all(2)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 14:30:57

    // 源数组
    $source = array(
        'server' => array('hk','jp'),
        'fromdate' => array('2013-07-17','2013-07-08')
    );
    
    //目标数组
    $result = array();
    foreach($source as $key=>$value){
        $j = 0;
        // 当然用这里用foreach也可以实现,但是for循环更能直观了解它的怎么工作的。
        for($i=0;$i<count($value);$i++){
            $result[$j][$key] = $value[$i];
            $j++;
        }
        /* foreach实现
        foreach($value as $val){
            $result[$j][$key] = $val;
            $j++;
        }
        */
    }
    
    // 输出结果
    echo '<pre>';
    print_r($result);
    echo '</pre>';
    

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:30:57

    $source = array(
        'server' => array('hk','jp'),
        'fromdate' => array('2013-07-17','2013-07-08')
    );
    $new_array = array_map(function($server,$fromdate) {
        return array('server'=>$server,'fromdate'=>$fromdate);
    }, $source['server'],$source['fromdate']); //代码比较少
    

    reply
    0
  • Cancelreply