0

我这里有一个多维数组。

  {
     "date_start": [
                   "2013-09-30",
                   "2013-09-27",
                   ],

     "time_start": [
                   "2013-09-30 08:41:00",
                   "2013-09-27 09:01:00",       
                   ],

     "time_out":   [
                   "2013-09-30 18:37:00",
                   "2013-09-27 21:11:00",
                   ],              
   }

是否可以将其转换为线性数组?像这样的事情?

 {
    [{"date_start":"2013-09-30","time_start":"2013-09-30 08:41:00","time_out":"2013-09-30 18:37:00"},
     {"date_start":"2013-09-27","time_start":"2013-09-30 09:01:00","time_out":"2013-09-30 21:11:00"}]
 }

我很难考虑如何做到这一点T_T。感谢任何可以帮助我的人。

更新: 这是我的更新作品。感谢 Nil'z 启发我使用解码。只需要多一点时间。

     $data_en = json_encode($data);
     $data_de = json_decode($data_en, true);
     $test = array();

     foreach($data_de as $key => $value)
     {
        echo $key."<br/>";
        foreach($value as $k => $v)
        {
            echo "$k |";
            echo json_encode($v)."<br/>";
        }   
     } 

这是现在的输出,但仍需要解决一些问题:

date_start
0 |"2013-09-30"
1 |"2013-09-27"

time_start
0 |"2013-09-30 08:41:00"
1 |"2013-09-27 09:01:00"

time_out
0 |"2013-09-30 18:37:00"
1 |"2013-09-27 21:11:00"
4

2 回答 2

1

如果它JSON像这样尝试:

<?php
    $data   = array();
    $array  = json_decode( $mainArray );    #decode the JSON
    foreach( $array as $key => $each ){
        $data[$key]['date_start'] = $each['date_start'];
        $data[$key]['time_start'] = $each['time_start'];
        $data[$key]['time_out'] = $each['time_out'];
    }
    #again encode the JSON
    $data   = json_encode( $data );
    print_r( $data );
?>
于 2013-10-01T07:54:47.907 回答
0

您可以尝试使用递归函数:

function array_multi_to_linear($arr) {
    static $rez;
    foreach($arr as $v) {
            if (is_array($v)) {
                array_multi_to_linear($v);
            } else {
                $rez[] =$v;
            }
    }
    return $rez;
}
于 2015-02-28T09:51:38.703 回答