我这里有一个多维数组。
{
"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"
答案 0 :(得分: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 );
?>
答案 1 :(得分: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;
}