【问题标题】:Indexed multidimensional array from PHP to javascript over JSON通过 JSON 从 PHP 到 javascript 的索引多维数组
【发布时间】:2018-01-05 07:48:17
【问题描述】:

您好,我有一个包含数据库记录的多维数组,其中键是数据库中的 ID(第一个 ID 是工作组的 ID,第二个 ID 是用户 ID)。

$users = array(
  2 => array(
    5 => array(
      'firstname' => 'John'
      'lastname' => 'Newman'
    ),
    7 => array(
      'firstname' => 'Peter'
      'lastname' => 'Dow'
    );
  ),
  12 => array(
    15 => array(
      'firstname' => 'George'
      'lastname' => 'Bush'
    ),
    30 => array(
      'firstname' => 'Ronald'
      'lastname' => 'Reagan'
    );
  );
);

echo json_encode($users);

在 javascript 中,我想访问像 users.workgroupId.userId.firstname 这样的数组。我知道 javascript 没有关联数组,但我需要使用 PHP 中的那种数据。 javascript可以吗?

【问题讨论】:

  • 当然,JavaScript 有可以从 PHP 映射的简单对象。喜欢jsObject = { 2: { 5: { firstname : "John", lastname: "Newman" }} }。通常像 json_encode 这样的 JSON 转换器应该为你做这个!?

标签: javascript php json associative-array


【解决方案1】:

假设您的代码生成了有效的 JSON,以下是获取所需详细信息的方法:

let workgroupId = 2; // Define your workgroup ID here
let userId = 5; // Define the user ID here

console.log(users[workgroupId][userId]. firstname); // prints `John` on the console

【讨论】:

    【解决方案2】:

    要明确: 关联数组在使用 json_encode 从 php 转换然后在 js 中反序列化时成为 javascript 对象。您在 js 中的数组将如下所示:

    var users = {
       2: {
          5: {
             firstname: "John",
             lastname: "Newman"
          },
          7: {
             firstname: "Peter",
             lastname: "Dow"
          }
       },
       12: {
          15: {
             firstname: "George",
             lastname: "Bush"
          },
          30: {
             firstname: "Ronald",
             lastname: "Reagan"
          }
       }
    };
    

    所以就像访问其他所有 javascript 对象一样访问它。

    例子:

    alert(users[2][5].lastname);
    

    将输出“纽曼”。

    【讨论】:

      【解决方案3】:

      您的 php 数组中有一些语法错误。右边的数组在后面。

      $users = array(
        2 => array(
          5 => array(
            'firstname' => 'John',
            'lastname' => 'Newman'
          ),
          7 => array(
            'firstname' => 'Peter',
            'lastname' => 'Dow'
          )
        ),
        12 => array(
          15 => array(
            'firstname' => 'George',
            'lastname' => 'Bush'
          ),
          30 => array(
            'firstname' => 'Ronald',
            'lastname' => 'Reagan'
          )
        )
      );
      
      echo json_encode($users);
      

      下面是javascript代码。

      function myFunction(){
          var users={"2":{"5":{"firstname":"John","lastname":"Newman"},"7":{"firstname":"Peter","lastname":"Dow"}},"12":{"15":{"firstname":"George","lastname":"Bush"},"30":{"firstname":"Ronald","lastname":"Reagan"}}};
        alert(users[2][5].firstname);
      }
      <!DOCTYPE html>
      <html>
      <body>
      
      <p>Click the button to display an alert box.</p>
      
      <button onclick="myFunction()">Try it</button>
      
      </body>
      </html>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-13
        • 2012-10-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        • 2012-04-14
        • 1970-01-01
        相关资源
        最近更新 更多