【问题标题】:Multidimensional Array Javascript多维数组Javascript
【发布时间】:2017-05-24 16:41:17
【问题描述】:

我在 php 中有一个这样的多维数组:

$personArray = [
              0 => 
                [
                  'Name' => 'John',
                  'Age' => '28',
                ],
              1 => 
                [
                  'Name' => 'Peter',
                  'Age' => '22',
                ]
             ];

在刀片视图中,我执行foreach ($personArray as $pa) 以查看所有名称(在 foreach 中我执行 -> $pa['Name'] 并打印所有名称)。现在还可以。但我需要在 javascript 中使用相同的数组。我这样做:var pArray= <?php echo json_encode(json_encode($personsArray)) ?>; 并发出警报,然后他显示数组(此时数组被“转换”为 javascript)。但是我需要像在 php 中一样在 javascript 中创建一个 foreach 以在 javascript 中显示数组内的所有名称。但我没有任何解决方案。

我不是网络编程方面的专家,所以感谢您的帮助。

谢谢:)

编辑:我在 php 类的 php 函数中有这个数组。我确实将数组返回到我需要数组的视图(在这种情况下有两个视图..第一种情况我在 php 中使用刀片数组..在第二种情况下我在 javascript 中使用数组)

【问题讨论】:

标签: javascript php arrays multidimensional-array foreach


【解决方案1】:

可以将json值解析为js,再解析为数组。

php:

<script type="text/javascript">
    var json = <?php echo json_encode($array); ?>;
</script>

js:

var array = JSON.parse(json);
array.forEach(function(value){
   console.log(value['Name']);
})

【讨论】:

  • 嗨@Kris Roofe。谢谢它对我有帮助。但我有另一个问题。在这种情况下如何访问特定的键值?如何做到这一点 forEach 并打印名称键的所有值?我想像在 php 代码中一样使用 foreach 打印所有名称(在本例中为 John 和 Peter)。谢谢
  • eidted,现在检查一下。
【解决方案2】:

Array.prototype.forEach() 是你的朋友。

在您的情况下,您可以执行以下操作:

pArray.forEach(function(item, index, arrayItSelf){
  //do something with item
});

【讨论】:

  • 这是一个php数组
  • @justrohu 仔细观察这个问题。 OP 声明该数组被编码为 JSON。
  • @RMaster21 你能给我们点赞吗:P,请选择一个正确的答案。
【解决方案3】:

你不能在php中解析两次,你的代码一定是

var pArray= JSON.parse(<?php echo json_encode($personsArray) ?>);

你用 json 编码你的 php 数组,然后你用 javascript 解码

【讨论】:

  • 在我的情况下(我不明白为什么)我需要使用 json_encode 两次才能工作..就像我在示例中发布的那样。谢谢
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 2011-01-17
相关资源
最近更新 更多