用PHP访问JSON数组
似乎无法理解如何在我的for循环中访问数组中的JSON对象。任何帮助都会很好。 Json: 以下是我的php:用PHP访问JSON数组,php,arrays,json,object,Php,Arrays,Json,Object,似乎无法理解如何在我的for循环中访问数组中的JSON对象。任何帮助都会很好。 Json: 以下是我的php: for($j = 0; $j < $size; $j++){ $sql = "INSERT INTO advisor_discussion(`comment_subject`,`advisor_id`,`content`,`date_created`,`discussion_category`,` last_comment_id`,`updated_at`) VALUES (?,
for($j = 0; $j < $size; $j++){
$sql = "INSERT INTO advisor_discussion(`comment_subject`,`advisor_id`,`content`,`date_created`,`discussion_category`,`
last_comment_id`,`updated_at`) VALUES (?,?,?,?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sssssss', $comment_subject, $advisor_id, $content, $date_created, $discussion_category, $last_comment_id, $updated_at);
$comment_subject = $discussion['subject'][$j];
$advisor_id = $discussion['subscribers_primary_advisor_id'][$j];
$content = $discussion['comments_first'][$j];
$date_created = $discussion['created_at'][$j];
$discussion_category = $discussion['$discussion_category'][$j];
$last_comment_id = $discussion['last_comment_by_id'][$j];
$updated_at = $discussion['updated_at'][$j];
if ($stmt->execute() !== TRUE) {
var_dump($stmt);
die("Error inserting discussion");
}
($j=0;$j<$size;$j++)的{
$sql=“插入顾问讨论(`comment\u subject`、`advisor\u id`、`content`、`date\u created`、`discussion\u category`、`
最后一条注释id`,`在`处更新了`)值(?,,,,,,,,?,,?)”;
$stmt=$conn->prepare($sql);
$stmt->bind_参数('sss'、$comment_subject、$advisor_id、$content、$date_created、$discussion_category、$last_comment_id、$updated_at);
$comment_subject=$discussion['subject'][$j];
$advisor\u id=$discussion['subscribers\u primary\u advisor\u id'][$j];
$content=$discussion['comments_first'][$j];
$date_created=$discussion['created_at'][$j];
$discussion_category=$discussion['$discussion_category'][$j];
$last_comment_id=$discussion['last_comment_by_id'][$j];
$updated_at=$discussion['updated_at'][$j];
如果($stmt->execute()!==TRUE){
var_dump($stmt);
模具(“错误插入讨论”);
}
}假设您已使用JSON_decode函数解析JSON,并且JSON字符串中包含多个JS对象,那么您可以使用
$discussion['subject'][$j]
而不是$discussion[$j]['subject']
换句话说,首先是索引,然后是JS对象属性
还要注意,json_decode也可以创建PHP对象。有关第二个参数,请参见此处:
如果未指定需要关联数组,则可能需要尝试执行
$discussion[$j]->subject
相反,因为您将获得一个对象数组。假设您已使用JSON_decode函数解析JSON,并且您的JSON字符串中包含多个JS对象,那么也许可以使用$discussion['subject'][$j]
而不是$discussion[$j]['subject']
换句话说,首先是索引,然后是JS对象属性
还要注意,json_decode也可以创建PHP对象。有关第二个参数,请参见此处:
如果您没有指定需要关联数组,那么您可能希望尝试执行
$discussion[$j]->subject
,因为您将获得一个对象数组。您的JSON数据包含一个包含对象的JavaScript数组,您应该通过引用数组中的索引来访问每个对象。所以是$discussion[$j]['subject']等等。我希望$size变量包含count($discussion);JSON数据包含一个包含对象的JavaScript数组,您应该通过引用数组中的索引来访问每个对象。所以是$discussion[$j]['subject']等等。我希望$size变量包含count($discussion);当我尝试这两种方法时,我得到了一个未定义的索引,所以我不认为它是通过for循环中的数据进行解析的,前面是增量。还有其他建议吗?您是否尝试将其作为对象属性访问?我的意思是像$discussion[$j]->subject
-可能是您的JSON对象被解析为PHP标准对象。当我尝试这两种方法时,我得到了一个未定义的索引,因此我不认为它是通过for循环中的数据进行解析的,前面是增量。还有其他建议吗?您是否尝试将其作为对象属性访问?我的意思是像$discussion[$j]->subject
-可能是您的JSON对象被解析为PHP标准对象。
for($j = 0; $j < $size; $j++){
$sql = "INSERT INTO advisor_discussion(`comment_subject`,`advisor_id`,`content`,`date_created`,`discussion_category`,`
last_comment_id`,`updated_at`) VALUES (?,?,?,?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('sssssss', $comment_subject, $advisor_id, $content, $date_created, $discussion_category, $last_comment_id, $updated_at);
$comment_subject = $discussion['subject'][$j];
$advisor_id = $discussion['subscribers_primary_advisor_id'][$j];
$content = $discussion['comments_first'][$j];
$date_created = $discussion['created_at'][$j];
$discussion_category = $discussion['$discussion_category'][$j];
$last_comment_id = $discussion['last_comment_by_id'][$j];
$updated_at = $discussion['updated_at'][$j];
if ($stmt->execute() !== TRUE) {
var_dump($stmt);
die("Error inserting discussion");
}