Php 这个二维关联数组有什么问题?
我试图用Javascript创建一个二维关联数组(第一个索引数字,第二个索引关联)。我正在设计的页面将有多个字段,以及一个下拉菜单,允许用户选择不同的“更新日期”,这些字段将重新填充该更新的值。我正在使用php生成javascript代码: 下面是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数组完全不同
在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"
];