如何访问包含日期数组的JSON对象的每个值?我从我的Android应用程序发送一个JSON对象。
{"date":"[Tue Apr 05 00:00:00 GMT+05:30 2016, Wed Apr 06 00:00:00 GMT+05:30 2016]"}
这是我的php代码:
<?php
require_once 'include/DB_Functions.php';
$db = new DB_Functions();
if(isset($_POST['ngno']) && isset($_POST['JSON']) ){
$ngno = $_POST['ngno'];
$json = json_decode($_POST['JSON'], true);
$dates = $json['date'];
foreach($dates as $date){
$job = $db->updateDates($ngno, $date);
if($job){
$response["error"] = FALSE;
echo json_encode($response);
}
else{
$response["error"] = TRUE;
$response["error_msg"] = "Unknown error occurred in Updating!";
echo json_encode($response);
}
}
}
else{
$response["error"] = TRUE;
$response["error_msg"] = "Dates are missing!";
echo json_encode($response);
}
?>
updateDates
功能:
public function updateDates($ngno, $date){
$stmt = $this->conn->prepare("INSERT INTO datepicker(ngno, date) VALUES($ngno, $date)");
$result = $stmt->execute();
$stmt->close();
}
但我得到一个错误说,PHP警告:
为foreach()提供的参数无效
答案 0 :(得分:0)
正如评论所说,您目前正在尝试循环使用string
而不是array
,以便foreach
给您回复错误的原因
良好解决方案可能会改变您的设置,以便JSON
返回array
个日期而不是string
。
解决此问题的其他方法是将string
分解为array
,如下所示:
$dates = explode(',', $json['date']);
这样你就有了一个可以循环的数组。