【问题标题】:Multidimensional array PHP-JSON多维数组 PHP-JSON
【发布时间】:2013-10-27 13:34:29
【问题描述】:

如何使用 json_encode() 在 PHP 中创建一个数组,该数组具有以下结构:

Array(
[1] => Array(
    [id] => 1
    [data] => 45
)
[2] => Array(
    [id] => 3
    [data] => 54
)
);

【问题讨论】:

  • json_encode(what you have above)? json_encode 只是一个翻译器。您构建一个数组,json_encode 将为您将其转换为文本。它没有什么神奇之处。
  • 我知道,您在 php 中使用 json_encode($your_array_example); 制作了一个数组示例生成类似上面的结果?

标签: php json multidimensional-array


【解决方案1】:

试试这样的:

//initialize array
$myArray = array();

//set up the nested associative arrays using literal array notation
$firstArray = array("id" => 1, "data" => 45);
$secondArray = array("id" => 3, "data" => 54);

//push items onto main array with bracket notation (this will result in numbered indexes)
$myArray[] = $firstArray;
$myArray[] = $secondArray;

//convert to json
$json = json_encode($myArray);

【讨论】:

  • 我从数据库中获取了多个数组元素,那么它是如何实现的?表示上面的示例是硬编码的,我需要这一行 $firstArray = array("id" => 1, "data" => 45);更通用
【解决方案2】:

这里有一个更短的方法:

$myArray = array();

$myArray[] = array("id" => 1, "data" => 45);
$myArray[] = array("id" => 3, "data" => 54);

//convert to json
$json = json_encode($myArray);

【讨论】:

    【解决方案3】:

    这个示例 PHP 数组是混合的,外层是数字索引的,第二层是关联的:

    <?php
    // PHP array
    $books = array(
        array(
            "title" => "Professional JavaScript",
            "author" => "Nicholas C. Zakas"
        ),
        array(
            "title" => "JavaScript: The Definitive Guide",
            "author" => "David Flanagan"
        ),
        array(
            "title" => "High Performance JavaScript",
            "author" => "Nicholas C. Zakas"
        )
    );
    ?>
    

    json_encode 输出中,外层是数组字面量,而第二层是对象字面量。此示例演示了将 JSON_PRETTY_PRINT 选项与 json_encode 一起使用以获得更具可读性的输出,如下面的代码 cmets 所示:

    <script type="text/javascript">
    // pass PHP array to JavaScript 
    var books = <?php echo json_encode($books, JSON_PRETTY_PRINT) ?>;
    
    // output using JSON_PRETTY_PRINT
    /* var books = [ // outer level array literal
        { // second level object literals
            "title": "Professional JavaScript",
            "author": "Nicholas C. Zakas"
        },
        {
            "title": "JavaScript: The Definitive Guide",
            "author": "David Flanagan"
        },
        {
            "title": "High Performance JavaScript",
            "author": "Nicholas C. Zakas"
        }
    ]; */
    
    // how to access 
    console.log( books[1].author ); // David Flanagan
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 2016-05-23
      • 2016-06-11
      • 2020-06-21
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多