【发布时间】:2017-07-07 03:32:30
【问题描述】:
我得到一个多维数组作为 json_decode 的结果:
$start=new DateTime();
$jzon='[{"latitude":41.9089983,"longitude":12.4778983,"mVersionCode":1, "data":""},
{"latitude":41.9091,"longitude":12.4781983,"mVersionCode":1, "data":""},
{"latitude":41.9087983,"longitude":12.4786,"mVersionCode":1, "data":""},
{"latitude":41.9082,"longitude":12.4793,"mVersionCode":1, "data":""},
{"latitude":41.9065,"longitude":12.4811983,"mVersionCode":1, "data":""},
{"latitude":41.9061983,"longitude":12.4819983,"mVersionCode":1, "data":""},
{"latitude":41.9063983,"longitude":12.4827983,"mVersionCode":1, "data":""},
{"latitude":41.9089983,"longitude":12.4840983,"mVersionCode":1, "data":""}]';
$arrayJson=json_decode($jzon, TRUE);
然后我尝试不同的方式遍历数组,我发现这个更有用:
if (json_last_error() === JSON_ERROR_NONE) {
// JSON is valid
foreach($arrayJson as $cell) {
foreach($cell as $key=>$value) {
if($key=='data') {
$value=$start->format('Y-m-d\ H:i:s');
$start=$start->modify('+1 seconds');
}
}
}
} else {
echo " not valid Json";
}
我尝试了一些不同的方法来为字段“数据”分配 start 的值,但如果在 $arrayJson 对象上创建了一个 var_dump,则没有设置值!
$cell[$value]=$start; 不起作用!
$value= $something; 不行!
【问题讨论】:
-
使用
References将此foreach($cell as $key=>$value)更改为foreach($cell as $key=>&$value)并将此foreach($arrayJson as $cell)更改为foreach($arrayJson as &$cell)
标签: php arrays json multidimensional-array foreach