使用js

时间:2017-12-05 17:33:37

标签: javascript php arrays json codeigniter

我有一个php数组(零索引),我通过回显它的json_encode格式直接发送到前端。

我希望JSON对象看起来像

{
    'A': null,
    'B': null,
    'C': null
}

但是当我尝试使用console.log时,

console.log(<?php echo json_encode($array); ?>)

其打印js数组

当我在后端尝试print_r($ array)时,它会打印

[array] => Array
    (
        [0] => A
        [1] => B
        [2] => C

    )

提前致谢

2 个答案:

答案 0 :(得分:3)

此代码为您提供所需的输出

$array = array
    (
        '0' => 'A',
        '1' => 'B',
        '2' => 'C'

    );
    $array = array_fill_keys($array, NULL);

echo json_encode($array);

Out Put:

{"A":null,"B":null,"C":null}

使用Javascript:

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

console.log(data);
//-->
</script>

Out Put:

 Object {A: null, B: null, C: null}
    A:null
    B:null
    C:null

答案 1 :(得分:2)

为什么不让你的PHP数组成为[&#39; A&#39; =&GT; null,&#39; B&#39; =&GT;空...]

否则,您的另一个选择是:

   $newArray = array_fill_keys($tags, null);
   json_encode($newArray);

这将获取$ tags中的每个数组元素,并将其设置为newArray中的索引,值为null。

根据您的代码,您将拥有:

<?php $newArray = array_fill_keys($tags, null);
$json = json_encode($newArray); ?>
console.log(JSON.parse(<?= $json; ?>));