如何在JavaScript中创建这样的PHP数组?

时间:2010-05-31 13:41:33

标签: javascript

如何在JavaScript中创建这样的PHP数组?

$arr = array('oneKey' => array('key1' => 'value1',
                               'key2' => 'value2'),
             'anotherKey' => array('key1' => 'value1',
                                  'key2' => 'value2'));

编辑:伙计们,我忘了提到我需要一种简单的方法来对这些数组进行排序('key1'=>'value1','key2'=>'value2'按字典顺序排列。

EDIT2:实际上我不会“转换”它。这是我解释事情的一种方式。我更像是一个骗子。

3 个答案:

答案 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

另见: