【问题标题】:What is the right php array for this json output?这个 json 输出的正确 php 数组是什么?
【发布时间】:2014-05-16 14:47:27
【问题描述】:

我想要这个 JSON 输出;

                          [
                            {c: [
                                {v: "1"},
                                {v: 90}
                            ]},
                            {c: [
                                {v: "2"},
                                {v: 80}
                            ]}
                          ] 

这是我的php代码;

            $data = array('c' => ( array('v'=>1 ), array('v'=>90 ) ),
                                 ( array('v'=>2 ), array('v'=>80 ) )
                    );
            echo json_encode($data);

语法甚至不正确,我花了一些时间在这里和那里添加括号,但错误仍然存​​在。如何获取正确的php数组来实现想要的json输出?

非常感谢。

【问题讨论】:

  • 你现在得到的输出是什么?
  • 很遗憾,我遇到了语法错误。

标签: php arrays json associative-array


【解决方案1】:

您应该像这样重新创建数组以获得预期的JSON

<?php

$arr = array(
    0 =>
        array(
            'c' =>
                array(
                    0 =>
                        array(
                            'v' => '1',
                        ),
                    1 =>
                        array(
                            'v' => 90,
                        ),
                ),
        ),
    1 =>
        array(
            'c' =>
                array(
                    0 =>
                        array(
                            'v' => '2',
                        ),
                    1 =>
                        array(
                            'v' => 80,
                        ),
                ),
        ),
);

echo json_encode($arr);

OUTPUT :

[{"c":[{"v":"1"},{"v":90}]},{"c":[{"v":"2"},{"v":80}]}]

【讨论】:

    【解决方案2】:
    <?php
    
    $data = array(
        'c' => array(
                array('v' => 1), 
                array('v' => 90,) 
        ),
        'd' => array(
                array('v' => 2), 
                array('v' => 90,) 
        ),
    );
    
    echo json_encode($data);
    

    根据需要输出,只有第二个 'c' 更改为 'd': {"c":[{"v":1},{"v":90}],"d":[{"v":2},{"v":90}]}

    【讨论】:

      【解决方案3】:

      用数组括起来得到[符号

      <?php
      $data = array(array('c' => array(array('v'=>1 ),array('v'=>90 )) ,array(array('v'=>2 ,array('v'=>80 )) )));
      echo json_encode($data);
      

      输出:

      [{"c":[{"v":1},{"v":90}],"0":[{"v":2,"0":{"v":80}}]}]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2018-01-13
        • 2012-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多