繁体   English   中英

在数组中设置关联数组值

[英]Set associative array value in array

这看起来很简单,但我无法弄清楚。

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

$number_children[reference_number - 1][$key] = value;

在Javascript中,我需要这样做:在关联数组中设置一个值,该数组在普通数组中。

我试过这个:

number_children[reference_number - 1][key] = $(this).val();

这似乎不起作用。 设置此值的简单方法是什么?

在此先感谢您的帮助。

你在初始化数组吗?:

number_children = [];
number_children[reference_number - 1] = {};
number_children[reference_number - 1][key] = $(this).val();

也许jsFiddle将有助于显示问题。

在Javascript数组和“关联数组”是不同的。 事实上,Javascript人不使用术语“关联数组”,他们称之为“对象”(或“哈希”)。

所以,你可以这样做:

number_children[reference_number - 1] = {};
number_children[reference_number - 1][key] = $(this).val();

但是,当您尝试迭代它时,由于length未设置,这会产生意外结果:

number_children[reference_number - 1] = [];
number_children[reference_number - 1][key] = $(this).val();

JavaScript中没有关联数组这样的东西。

在PHP中,您只有数组,可以是数字,关联或混合。 在JavaScript中,您有数组或对象。 JavaScript中的数组不是关联的。

如果number_children是一个对象数组,那么你的代码就完全没了问题。 这意味着,如果这是包含对象的数组,则该对象又在示例中具有名为key变量的值的属性。

tl; dr发布实际问题代码(包含最少的必需上下文), 包括任何错误消息和/或[意外]症状。


正如minitech所说:代码没有“明显”错误。

无论如何,I Just Learned(TM)认为PHP具有某种形式的自动生存 JavaScript的自动生存率绝对为零

从而,

$number_children[reference_number - 1][$key] = value;

应该在PHP中工作,假设$number_children$number_children[x]

  1. 还没有设定。
  2. 先前已设置为“数组”。

由于JS 不能像这样工作,那么根据SpoonNZ或Sergio Tulentsev的答案, 必须在使用[]运算符之前显式创建对象/数组 (参见他们的答案)。

快乐的编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM