【发布时间】:2020-05-20 12:07:43
【问题描述】:
我有一个对象或数组,如下所示: "[{},{},{},{},{},{},{},{},{\"subject\":\"Math\"},{},{},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{},{\“主题\”:\”化学\”},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}] "
还有: [{},{},{},{},{},{},{},{},{"subject":"Math"},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{"subject":"Chemistry"},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{}]
当我使用 foreach 循环对其进行迭代时,它会显示“在第 11 行的 C:\wamp64\www\eschool\cms\admin\scripts\time-table-add-submit.php 中为 foreach() 提供的参数无效” 可能是由于开头和结尾处的空值。但我想以某种方式迭代它如何做到这一点。这是我的代码: JavaScript:
var timeTableSub = [
{"subject": timeTableSub1},
{"subject": timeTableSub2},
... Like Wise....
{"subject": timeTableSub42}
];
var jsonArray = JSON.stringify(timeTableSub);
$.ajax({
url: "scripts/time-table-add-submit.php",
type: "POST",
dataType: 'html',
data:{
'arrayList': jsonArray
},
success: function (data) {
data = $.trim(data);
$("#tempDiv").html(data);
}
});
PHP:
<?php
$arrayList = json_encode($_POST['arrayList'], TRUE);
echo $arrayList."<br>";
$newArray = json_decode($arrayList);
echo $newArray."<br>";
foreach ($newArray as $key => $value)
{
echo $key . " => " . $value . "<br>";
}
?>
【问题讨论】:
-
那么编码和解码数据的意义何在?
-
只是检查我拥有的数据,没有别的。
-
您不需要
$arrayList = json_encode($_POST['arrayList'], TRUE);,因为您从浏览器发送的已经 JSON。因此,您应该稍后再写$newArray = json_decode($_POST['arrayList']); -
thanx @ADyson 现在我得到了结果,但空值丢失了。有没有办法打印像“主题:”如果它是空的
标签: javascript php arrays json