如何在JavaScript中创建这样的PHP数组?
$arr = array('oneKey' => array('key1' => 'value1',
'key2' => 'value2'),
'anotherKey' => array('key1' => 'value1',
'key2' => 'value2'));
编辑:伙计们,我忘了提到我需要一种简单的方法来对这些数组进行排序('key1'=>'value1','key2'=>'value2'按字典顺序排列。
EDIT2:实际上我不会“转换”它。这是我解释事情的一种方式。我更像是一个骗子。
答案 0 :(得分:5)
如果您通过AJAX发送它,请考虑使用JSON编码并将其解析回javascript端的数组。对于记录,它更像是Javascript中的一个对象,因为它具有键和值。
在PHP中:
$jsonString = json_encode($arr);
然后在JS:
var jsonObject = JSON.parse(str);
许多JS库都有可用的JSON解析器。否则,抓住上面链接中的那个。没有评估()。
在排序时,只需按照PHP中所需的顺序指定键,它们就应该完好无损。
答案 1 :(得分:2)
<?php
$arr = array('oneKey' => array('key1' => 'value1',
'key2' => 'value2'),
'anotherKey' => array('key1' => 'value1',
'key2' => 'value2'));
?>
<script type="text/javascript">
/* <![CDATA[ */
var _my_var = '<?= json_encode($arr) ?>';
/* ]]> */
</script>
修改强>
如果您需要订购密钥,我建议您在php端使用ksort,然后再使用javascript
答案 2 :(得分:2)
创建一个JS对象。 {}
表示对象的开始和结束,:
表示键值分隔符,,
表示属性(键值对)分隔符。
var obj = {
'oneKey': {
'key1': 'value1',
'key2': 'value2'
},
'anotherKey': {
'key1': 'value1',
'key2': 'value2'
}
};
alert(obj.oneKey.key2); // value2
alert(obj['anotherKey']['key1']); // value1
另见: