douweibeng5219 2013-09-18 14:44
浏览 55
已采纳

如何将二维PHP数组编码为要在JavaScript中解码的JSON数组?

I have an array of arrays in php called $searchResults. Each array within $searchResults is formatted as such:

array('name' => <name> , 'value' => <value>)

I want to encode this two dimension array as a JSON array and pass it back to my JavaScript. How can I encode this array in PHP such that I can decode it in JavaScript and then iterate through each array by key? Is this even possible? I have found examples of encoding multidimensional arrays that don't use the <key> => <value> syntax but I am not really sure if these are applicable. An example would be here. Thanks!

  • 写回答

2条回答 默认 最新

  • duangang4001 2013-09-18 14:56
    关注

    I see two ways:

    1) Pass array in current state:

    <?php
    $array = [
        [ 'name' => 'x' , 'value' => 1 ],
        [ 'name' => 'y' , 'value' => 2 ],
        [ 'name' => 'z' , 'value' => 3 ]
    ];
    ?>
    
    <script type="text/javascript">
    var php_json = <?php echo json_encode($array); ?>;
    
    for(var i = 0; i < php_json.length; i++){
        console.log(php_json[i]);
    }
    </script>
    

    2) Convert to key-value pairs and pass:

    <?php
    $array = [
        [ 'name' => 'x' , 'value' => 1 ],
        [ 'name' => 'y' , 'value' => 2 ],
        [ 'name' => 'z' , 'value' => 3 ]
    ];
    
    $buffer = [];
    
    foreach($array as &$nested){
        $buffer[$nested['name']] = $nested['value'];
    }
    ?>
    
    <script type="text/javascript">
    var php_json = <?php echo json_encode($buffer); ?>;
    
    for(var key in php_json){
         console.log(key, php_json[key]);
         //       key ^      ^ value
    }
    </script>
    

    You can easily pass any simple php data structure to javascript via using json_encode() function.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算