【问题标题】:php file to php array to js array - as array of arraysphp 文件到 php 数组到 js 数组 - 作为数组数组
【发布时间】:2014-10-30 22:14:46
【问题描述】:
...
$php_array = mysqli_fetch_all($result,MYSQLI_ASSOC);
?>

<script type='text/javascript'>
<?php
$js_array = json_encode($php_array);
echo "var location = ". $js_array . ";\n";
?>
</script>   

我怎样才能修改上面给出这个输出的代码(我认为是一个对象数组?)

var javascript_array = [
    {"city":"Hermosa Beach","lat":"33.860069","lng":"-118.398784"},
    {"city":"San Jose","lat":"34.694628","lng":"-118.398784"},
    .... ]

给我这个...(数组的数组?)

var javascript_array = [
    ["Hermosa Beach",33.860069,-118.398784],
    ["San Jose",34.694628",-118.398784],
    .... ]  

没有一堆foreaching的......

【问题讨论】:

  • 查看此文档以了解如何在 php 和 javascript 之间传输:cullenwebservices.com/…
  • @jordan.peoples 他的问题不是如何在php和JS之间转换,而是如何改变他的数组结构。

标签: javascript php arrays mysqli


【解决方案1】:

当您调用mysqli_fetch_all() 时,使用MYSQLI_NUM 而不是MYSQL_ASSOC。然后这些行将是索引数组而不是关联数组。

虽然我不知道你为什么希望数组是这样的。数组应该用于统一数据,对象应该用于异构数据。

【讨论】:

    【解决方案2】:

    谢谢,这很有效,而且非常精简......

    <?php
    
        $query = "SELECT * FROM file";
        $result = $con->query($query);
    
        // Fetch all rows and return the result-set as an associative array:
        // using numeric keys for the array, instead of creating an associative array.
        $php_array = mysqli_fetch_all($result,MYSQLI_NUM);
    ?>  
    
    <script type='text/javascript'>
        <?php
    
        // create a JSON representation of a value that javascript will understand
        $js_array = json_encode($php_array);
    
        // dump json object into javascript variable 'locations'
        echo "var locations =" .  $js_array . ";\n";
        ?>
    </script>   
    

    【讨论】:

    • 顺便说一句:在 JavaScript 中,一切都是对象,不是很干净
    • 为什么说不干净?
    • 脚本标签内的php标签?真的吗?考虑单独的客户端代码和服务器代码。如前所述,要在它们之间进行通信,请使用为此考虑的技术
    • 精简就像缺少“不必要的代码和功能”。确实,在 javascript 中混合 PHP 并不是很正统。我将使用 Ajax 调用,这将解决这个问题,但我正在逐步构建模型,试图了解 PHP/javascript 数组/对象交互。
    • 最后评论:请不要在这里发布那种测试代码。发布您自己的问题最终解决方案很好,甚至受到鼓励!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2022-01-05
    相关资源
    最近更新 更多