【问题标题】:How to access a json array in php?如何在 php 中访问 json 数组?
【发布时间】:2013-05-10 11:36:14
【问题描述】:

我正在使用这个 html 和 javascript 将 json 数据发送到我的 php 文件。 http://jsfiddle.net/ExpertSystem/9aWNj/

如何在 php 中从那里访问它以回显给定元素?

类似的东西:

$value = json_decode($_POST["newOrder"])
echo $value[1];

我不确定如何从中检索数据。

【问题讨论】:

  • 我的代码在这里 -> jsbin.com/igewiv/1/edit 并托管在 php 服务器上 -> top50.zxq.net/fiddle.php。我只是为了能够回显所选元素及其位置,即位置 1 中的 2 或任何可能的位置。所以我知道我可以将它们存储在数据库等中。

标签: php javascript html arrays json


【解决方案1】:

试试这个,可能会有帮助

$FP=fopen(JSON_DIR."JsonArray.txt",'r');
$J_ARRAY=fread($FP,filesize(JSON_DIR."JsonArray.txt"));
$J_ARRAY=json_decode($J_ARRAY,JSON_FORCE_OBJECT);

【讨论】:

    【解决方案2】:

    这是一个 jsfiddle,可以查看 javascript 在您仍然迷路的情况下应该如何: http://jsfiddle.net/9aWNj/3/

    这是你用 php 解码的数据:

    `stdClass Object ( [order] => Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 [8] => 10 [9] => 11 [10] => 1 [11] => 12 ) )`
    

    要访问它将是:示例:

     $order_0=$value->order[0];
     $order_1=$value->order[1];
    

    或者你对json_decode使用true就会变成这样

     $order_0=$value['order'][0];
     $order_1=$value['order'][1];
    

    【讨论】:

    • 我试过 $value = json_decode($_POST["newOrder"], true);回声 $order_0=$value['order'][0];并且没有任何输出,是这段代码有问题还是其他地方有问题?
    • 你不能回显 $order_0=$value['order'][0];它应该是 2 行: $order_0=$value['order'][0];回声 $order_0;
    • 我仍然没有收到任何输出。我的代码在这里 -> jsbin.com/igewiv/1/edit 并托管在 php 服务器上 -> top50.zxq.net/fiddle.php。我只是为了能够回显所选元素及其位置,即位置 1 中的 2 或任何可能的位置。所以我知道我可以将它们存储在数据库等中。
    • 您能否更新您的问题,向我们展示您到底在做什么。
    • 不明白,你的php现在怎么样了?
    【解决方案3】:

    试试这个:

    $value = json_decode($_POST["newOrder"], true)
    echo "<pre>";
    print_r($value);
    

    注意第二个参数true,它将输出为数组,否则它将是对象。

    【讨论】:

      【解决方案4】:

      要像我想你可能想要的那样在 PHP 中使用 json,那么我建议你在 json_decode 函数中设置一个 true。

      这将为您提供以下信息:

      $json = json_decode($data,true); 
      $json["sub-values"]["sub thing"];
      

      【讨论】:

        【解决方案5】:

        为什么要将 JSON 作为 POST 请求的正文发送?做的更简单:

        $.ajax({
            url: "<url_to_php_file>",
            type: "POST",
            data: { order: JSON.stringify(dataArr) }
        });
        

        在服务器端使用:

        $value = json_decode($_POST["order"]);
        echo $value[1];
        

        【讨论】:

          【解决方案6】:

          查看 php 手册。

          json_decode 默认返回一个对象。使用第二个参数 true 返回一个数组。

          json_decode($_POST["newOrder"], true)
          

          【讨论】:

            【解决方案7】:

            Json_decode 默认返回对象为对象,获取数组需要第二个参数为true。

            $data = json_decode($_POST["newOrder"], false);以对象形式返回结果

            供打印对象使用

            echo $data->某事;

            $data = json_decode($_POST["newOrder"], true);以数组形式返回结果

            用于打印数组使用

            回声 $data['something'];

            【讨论】:

              猜你喜欢
              • 2023-02-04
              • 1970-01-01
              • 2017-10-28
              • 2013-02-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-26
              • 1970-01-01
              相关资源
              最近更新 更多