Javascript 从js到php的数组,计算数组长度时出错

Javascript 从js到php的数组,计算数组长度时出错,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我试图将数组从.js文件传递到php文件。 在js中,该数组如下所示: theBlock[0 - 79] with the values color, x and y. So for example theBlock[10].color or theBlock[79].x 此数据通过以下脚本传递: $.ajax({ type: 'POST', url: 'insert.php', data: $(theBlock).serialize() }).done(functi

我试图将数组从.js文件传递到php文件。 在js中,该数组如下所示:

theBlock[0 - 79] with the values color, x and y. So for example 
theBlock[10].color or
theBlock[79].x
此数据通过以下脚本传递:

$.ajax({
    type: 'POST',
    url: 'insert.php',
    data: $(theBlock).serialize()
}).done(function (data) {
    console.log(data);
}).fail(function () {
    alert("Failed");
});
php如下所示:

$newData = $_POST;
echo count($newData["theBlock"]) . "\n";
现在,当调用激活这个函数时,数据应该传递给php,然后php会将数组的长度发送给我。嗯,它总是把我发回“0”

该数组由以下脚本创建:

$.ajax({
    type: 'POST',
    url: 'insert.php',
    data: $(theBlock).serialize()
}).done(function (data) {
    console.log(data);
}).fail(function () {
    alert("Failed");
});
var theBlock=[]

for (c = 0; c < 80; c++) {
    theBlock.push({color: 0});
}

谢谢,您不能在javascript变量上使用serialize()。请参阅API文档

如果要对JSON数组进行编码,请使用
JSON.stringify()
,然后使用它

您不需要为变量分配$\u POST,只需直接使用它

echo count(json_decode($_POST['block'])) . "\n";

旁注:如果只是想知道数组长度,不需要PHP。只需执行block.length即可获得长度。

打印$\u POST的值,以查看实际获得的
var\u dump($\u POST)。执行此操作时,我得到:array(0){}我们可以看到
变量的构造函数吗?我添加了构造函数。我需要php中的数据,这就是为什么我发送它不是因为长度,而是因为thx!你能告诉我如何使用php访问数组中的第一个对象吗?我试过:
echo$newData[0][“color”]但它给了我一个内部服务器错误。$newData已被解码。谢谢!如果未设置关键点,则默认关键点是数字的,因此使用0应该可以工作。使用
var\u dump($newData)打印数组查看您需要如何访问这些值。我尝试过,但不知道如何读取var_dump内容:
array(80){[0]=>object(stdClass)#1(1){[“color”]=>int(0)
我必须如何读取它?顺便说一句,这不是整个输出。$newData的第一个元素是一个对象,因此您必须将它作为一个对象处理。
$newData[0]->color
echo count(json_decode($_POST['block'])) . "\n";