Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP访问JSON数组_Php_Arrays_Json_Object - Fatal编程技术网

用PHP访问JSON数组

用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循环中访问数组中的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 (?,?,?,?,?,?,?)";
$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");
}