Php 这个二维关联数组有什么问题?

Php 这个二维关联数组有什么问题?,php,javascript,multidimensional-array,associative-array,Php,Javascript,Multidimensional Array,Associative Array,我试图用Javascript创建一个二维关联数组(第一个索引数字,第二个索引关联)。我正在设计的页面将有多个字段,以及一个下拉菜单,允许用户选择不同的“更新日期”,这些字段将重新填充该更新的值。我正在使用php生成javascript代码: 下面是php代码的样子(我对其进行了格式化以使其更易于阅读): JavaScript数组[]不具有关联性,与PHP数组完全不同 在PHP中,您可以执行以下操作: $array = array( "foo" => "bar", "bar

我试图用Javascript创建一个二维关联数组(第一个索引数字,第二个索引关联)。我正在设计的页面将有多个字段,以及一个下拉菜单,允许用户选择不同的“更新日期”,这些字段将重新填充该更新的值。我正在使用php生成javascript代码:

下面是php代码的样子(我对其进行了格式化以使其更易于阅读):



JavaScript数组
[]
不具有关联性,与PHP数组完全不同

在PHP中,您可以执行以下操作:

$array = array(
    "foo" => "bar",
    "bar" => "foo"
);
以及:

关联的或非关联的

在JavaScript中,我们称之为关联数组的是对象文字(数组也是对象,但不要让这一点让您感到困惑)

要模拟与上述相同的行为,请执行以下操作:

var myArray = {
    "foo": "bar",
    "bar": "foo",
};
以及:

使用JS对象文字(myArray),可以使用点符号定义属性:
myArray.foo=“bar”,以及
myArray[“foo”]=“bar”

但是对于数组,您需要使用
.push()
方法:
myArray.push(“bar”)


虽然我不建议使用PHP创建JavaScript对象,但您需要将函数更改为使用对象文字而不是数组


一些好的读物:

我建议你看看。它会很快解决这个问题。是的,如果可以避免的话,永远不要直接构建javascript数据/代码。构建一个2D PHP数组,json_encode()将自动为您吐出JS等价物。您的版本容易受到与SQL注入攻击相当的JS攻击。考虑一下,如果你输出的这些值中包含一个JS元字符,会发生什么?
$array = array(
    "foo" => "bar",
    "bar" => "foo"
);
$array2 = array(
    "foo",
    "bar"
);
var myArray = {
    "foo": "bar",
    "bar": "foo",
};
var myArray2 = [
    "foo",
    "bar"
];