【问题标题】:Creating a 2d associative array javascript (same as a php assoc array)创建 2d 关联数组 javascript(与 php assoc 数组相同)
【发布时间】:2013-08-06 14:06:08
【问题描述】:

我正在尝试在 javascript 中创建一个数组,这将允许我访问这样的数据:

var name = infArray[0]['name'];

但是我似乎无法以这种方式工作。当我使用 json_encode 将 assoc 数组从 php 传递到 javascript 时,它以这种方式构造数据。 我这样做的原因是我可以将相同格式的数据传回 php 以执行更新 sql 请求。

【问题讨论】:

  • 如果你只是 serialize 数组,将它传递给另一个 PHP 文件,然后 unserialize 它,你会更轻松。中间的 Javascript 转换似乎没有必要。
  • @DevlshOne:JSON 也是一种序列化格式,只是不同而已。
  • 我不太明白你的意思,我有 2 个包含信息的数组,我需要用从 php 中取出的信息数组中的 id 将这些信息传回 php?
  • @RocketHazmat。我知道 JSON 是什么。哈哈。如果他只是将其发送到另一个 PHP 文件以在数据库中对其进行处理,则没有理由从中制作 Javascript 对象。

标签: javascript arrays multidimensional-array associative


【解决方案1】:

JavaScript 没有关联数组。它有(数字)数组和对象。

你想要的是两者的混合。像这样的:

var infArray = [{
    name: 'Test',
    hash: 'abc'
}, {
    name: 'something',
    hash: 'xyz'
}];

然后你可以像你展示的那样访问它:

var name = infArray[0]['name']; // 'test'

或使用点表示法:

var name = infArray[0].name; // 'test'

【讨论】:

  • 非常感谢您的所有回答,已经愚蠢地被困在这个问题上太久了(猜想需要睡眠)你会怎么做,所以它是空的,然后你可以在 for 循环中填充它?
  • 很高兴能帮上忙! :-D
【解决方案2】:

只需var infArray = [{name: 'John'}, {name: 'Greg'}] ;-)

【讨论】:

    【解决方案3】:

    JavaScript 没有关联数组。任何声明为obj['somthing'] 的对象的任何内容都等于obj.something - 它是一个属性。此外,在数组中它可能有点误导,所以任何添加的属性都不会改变数组集尝试obj.length

    【讨论】:

      【解决方案4】:

      JavaScript 本身没有二维关联数组。但是二维关联数组可以通过以下代码实现:

      var myArr = { K1: {
          K11: 'K11 val',
          K12: 'K12 Val'
          },
          K2: {
          K21: 'K21 Val',
          K22: 'K22 Val'
          }
      };
      alert(myArr['K1']['K11']);
      alert(myArr['K1']['K12']);
      alert(myArr['K2']['K21']);
      alert(myArr['K2']['K22']);  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-03
        • 2012-02-05
        • 2012-04-30
        • 2012-09-29
        • 2011-03-17
        • 2015-11-15
        • 1970-01-01
        相关资源
        最近更新 更多