Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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 警报Javascript数组对象显示为空_Php_Javascript_Arrays - Fatal编程技术网

Php 警报Javascript数组对象显示为空

Php 警报Javascript数组对象显示为空,php,javascript,arrays,Php,Javascript,Arrays,我试图将JavaScript数组发送到我的php,但是php变为空[] 它甚至在我的浏览器中显示为这样。我一直发送JSON,没有问题,但现在有了这种格式 我有一个毫无意义的例子……它只是一个说明问题的代码: var blah = []; var letters = ['a', 'b', 'c', 'd']; for (var i = 0; i < letters.length; i++) { blah[letters[i]] = i; } 当我这样做的时候 警报(废话)-

我试图将
JavaScript
数组发送到我的
php
,但是
php
变为空[]
它甚至在我的浏览器中显示为这样。我一直发送
JSON
,没有问题,但现在有了这种格式

我有一个毫无意义的例子……它只是一个说明问题的代码:

var blah    = [];
var letters = ['a', 'b', 'c', 'd'];

for (var i = 0; i < letters.length; i++)
{
    blah[letters[i]] = i;
}
当我这样做的时候

  • 警报(废话)
    ------------------------------------我得到空
  • 警报(JSON.stringify(blah))
    ----我得到[]
  • 警报(blah.a)
    -----------------------------我得到0

  • 那么我如何将这个对象传递给
    php
    ?谢谢

    请尝试使用对象,而不是数组

    因此,不是:

    var blah    = [];
    
    试一试


    数组是连续的数字索引。它们没有字符串作为键名。

    你想要的是一个对象,而不是数组,我以前已经回答过了。无论如何,
    blah
    是一个数组,但您不是将其用作数组,而是将其用作哈希映射。数组使用索引,映射使用键。JS中的任何对象也可以像地图一样工作。例如

    var obj = new Object();
    obj.a = 10;
    obj["b"] = 20;
    
    var obj2 = function(){...}
    obj2.foo = 10;
    obj2.bar = "baz";
    
    类似地,
    数组
    也是和
    对象
    ,可以像地图一样工作。但是,当您像使用贴图一样使用数组时,它的数组不会用于存储元素。他们的行为就像上面所说的。因此,数组的
    长度
    为0,即使它附加了属性


    您必须使用数组方法,如
    push
    pop
    来填充并从中检索。

    无法在数组中分配键值集合。您需要处理对象:

    var obj = {
        key1: value1,
        key2: value2
    };
    
    要将数组转换为字符串,可以使用:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.toString(); 
    
    带分离器:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var energy = fruits.join(" and "); 
    

    试试这个:

    var blah    = {};
    var letters = ['a', 'b', 'c', 'd'];
    
    for (var i = 0; i < letters.length; i++)
    {
        blah[letters[i]] = i;
    }
    
    alert(JSON.stringify(blah));
    
    var blah={};
    变量字母=['a','b','c','d'];
    对于(变量i=0;i
    该示例仅用于说明,请从我的答案中删除该示例。问题是,当您应该使用对象时,您正在使用数组。但是,如果我的键是一个变量,那么我应该如何分配?像这样的
    结果[key]=value
    ?感谢您的回答和努力
    rossipedia
    先回答,所以我会接受他的回答。感激
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var energy = fruits.join(" and "); 
    
    var blah    = {};
    var letters = ['a', 'b', 'c', 'd'];
    
    for (var i = 0; i < letters.length; i++)
    {
        blah[letters[i]] = i;
    }
    
    alert(JSON.stringify(blah));