【问题标题】:How do I get from JS array through JSON to a PHP array? (I'm at least halfway there)如何从 JS 数组通过 JSON 到 PHP 数组? (我至少到了一半)
【发布时间】:2010-05-10 14:46:30
【问题描述】:

我有一个 JS 数组,我将其转换为 JSON

JS

 mycode[0][0]=true
 mycode[0][1]="element1"
 mycode[0][2]=400
 mycode[0][3]=150
 mycode[0][4]=148
 mycode[0][5]=148

转成 JSON:

[
    [
        true,
        "element1",
        400,
        150,
        148,
        148
    ]

]

现在我将它推送到 PHP

PHP 代码:

$decoded = json_decode($_GET["q"]);

$response=$q[0];

echo $response;

它输出一个字母或一个符号,因为 JSON 是一个字符串。

如果我使用 $decoded[0][0] 或 $decoded[0] 而不是 $q[0] 我什么都得不到...

我到底做错了什么?

我想要什么?我需要在 JS 中使用相同的数组,只是在 PHP 中(该数组稍后将在 PHP 函数中使用)

【问题讨论】:

  • $q 是什么意思,它在哪里定义?
  • q 是 JSON,它通过 AJAX [[ true,"element1",400,150,148,148 ]]

标签: php javascript json


【解决方案1】:

代码:

<?php
$json = '[[ true,"element1",400,150,148,148 ]]';
$dec = json_decode($json);
var_dump($dec);
?>

输出:

array(1) {
  [0]=>
  array(6) {
    [0]=>
    bool(true)
    [1]=>
    string(8) "element1"
    [2]=>
    int(400)
    [3]=>
    int(150)
    [4]=>
    int(148)
    [5]=>
    int(148)
  }
}

在这里工作正常。您的问题一定出在其他地方。

$ php -v
PHP 5.3.2 (cli) (built: Apr 27 2010 17:55:48) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

【讨论】:

  • 第 3 行的数组 (6) 是如何得到的?我怎样才能调用这些值中的任何一个,它们是称为数组的数组的值吗?
  • 它们只是数组的元素。你只需索引它。 echo $dec[0][3];
【解决方案2】:

您如何将 JSON 推送到 PHP 代码。当您将 JSON 传递给 PHP 后端时,您应该使用诸如 json2.js 之类的库来对内容进行编码:

var myJSONText = JSON.stringify(myObject, replacer);

如果您使用 GET 传递 JSON,您可能还需要对 JSON 进行 URL 编码。

【讨论】:

  • 我很确定 AJAX 部分很好,因为我得到 JSON - [[ true,"element1",400,150,148,148 ]] - 作为输出,但前提是 q 数组只是字符和符号(例如 $q[0] 输出 [ 而 $decoded[0] 什么也不输出)...就 JSON 而言,我尝试了 JSONlint 并验证了代码,因此从 JS 到 JSON 的转换可能很好
【解决方案3】:

抱歉,在我看来,您需要阅读更多关于您要使用的三项内容的信息,特别是 AJAX 和 JSON

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    相关资源
    最近更新 更多