如何将PHP数组转换成这样的格式

Array
(
    [0] => 001-1234567
    [1] => 1234567
    [2] => 12345678
    [3] => 12345678
    [4] => 12345678
    [5] => AP1W3242
    [6] => AP7X1234
    [7] => AS1234
    [8] => MH9Z2324
    [9] => MX1234
    [10] => TN1A3242
    [11] => ZZ1234
)

到下面格式的Javascript数组?

var cities = [
    "Aberdeen",
    "Ada",
    "Adamsville",
    "Addyston",
    "Adelphi",
    "Adena",
    "Adrian",
    "Akron",
    "Albany"
];

当前回答

可以用更安全的方式来做。

如果你的PHP数组包含特殊字符,你需要在PHP中使用rawurlencode(),然后在JS中使用decodeURIComponent()来转义这些字符。并将JSON解析为原生js。试试这个:

var data = JSON.parse(
        decodeURIComponent(
            "<?=rawurlencode(json_encode($data));?>"
        )
    );

console.log(data);

其他回答

这么简单…!

使用这个方法:

<?php echo json_encode($your_array); ?>; 

在laravel blade{{}}中使用以下方法:

{{ str_replace('&quot;', '', json_encode($your_array)) }} 

为关联和非关联数组工作。

可以用更安全的方式来做。

如果你的PHP数组包含特殊字符,你需要在PHP中使用rawurlencode(),然后在JS中使用decodeURIComponent()来转义这些字符。并将JSON解析为原生js。试试这个:

var data = JSON.parse(
        decodeURIComponent(
            "<?=rawurlencode(json_encode($data));?>"
        )
    );

console.log(data);

对于Laravel, Blade{{}}语句通过PHP的htmlspecialchars函数自动发送,以防止XSS攻击。你的数据是不转义的,你可以使用以下语法:

const jsArray = {!! str_replace('&quot;', '', json_encode($array)) !!};

保持简单:

var jsObject = JSON.parse('<?= addslashes(json_encode($phpArray)) ?>');

你也可以这样做

<script>  
    <?php 
        $php_array = array('abc','def','ghi');
    ?>  
    var array_code = <?php echo json_encode($php_array); ?>;
    console.log(array_code);
</script>