如何在JS中创建关联数组

时间:2012-02-29 20:02:25

标签: php javascript jquery jquery-selectors

var stds = [];
<?php
  foreach ($this->students as $key => $value){
?>
    var smval = "<?php echo $value?>";
    stds.push( smval );
<?php
}
?>
alert("stds"+stds);

alert(“stds”+ stds); //打印abc,bcd,efg等......

以上代码适用于推送学生姓名。 现在我想推送学生CODES,这也是价值$ key。 如何创建一个关联数组来执行该操作

4 个答案:

答案 0 :(得分:3)

最干净,最安全的方法是将PHP对象转换为json_encode的JavaScript对象文字:

var students = <?= json_encode($this->students) ?>;

// sample usage
alert (students["Tony"]);   // Tony's student code
alert (students["Geezer"]); // Geezer's student code
alert (students["Vinnie"]); // etc.

答案 1 :(得分:1)

var stds = [];
<?php
  foreach ($this->students as $key => $value){
?>
    stds.push( { 'name': '<?php echo $value; ?>', 'code': '<?php echo $key; ?>' } );
<?php
  }
?>
alert("stds"+stds);

准确地说:JavaScript中没有关联数组。您可以使用上面的代码,它会为您提供包含数据或下面代码的对象数组,从而为您提供类似于PHP中的对象。

var stds = {};
<?php
  foreach ($this->students as $key => $value){
?>
    stds[ '<?php echo $key; ?>' ] = '<?php echo $value; ?>';
<?php
  }
?>
alert("stds"+stds);

答案 2 :(得分:0)

var stds = <?php echo json_encode( $this->students); ?>;

不确定数组中的键是什么

alert( stds[0][ key1 ] +'   ' + stds[0][ key2 ])

答案 3 :(得分:0)

我认为你正试图做更多的事情

stds[<?php echo $key?>] = '<?php echo $value; ?>';

或者您可以尝试在此处演示的对象中执行此操作:

http://jsfiddle.net/u3Muk/