【问题标题】:convert php array into single JSON object将php数组转换为单个JSON对象
【发布时间】:2013-08-28 06:44:29
【问题描述】:

我使用 json_encode 将 PHP 数组转换为 JSON。我检查了控制台,对象以数组的形式显示,但作为单个对象显示。

 [ { Object { 03-13-2012="Jazz"}, Object { 07-19-2012="Pop"}, ... ]

我怎样才能把这个数组转换成一个对象,像这样(在 PHP 或 jQuery 中):

Object { 03-13-2012="Jazz", 07-19-2012="Pop"}

编辑:这是我的 PHP 数组 print_r 的开头:

Array
(
    [0] => Array
        (
            [03-13-2012] => Jazz
        )

    [1] => Array
        (
            [07-19-2012] => Pop
        )
)

【问题讨论】:

  • 你的 PHP 数组是什么样的? (使用print_r。)
  • 只需合并 PHP 中的每个内部数组或 JS 中的对象。更好的是,从一开始就以正确的格式创建数组!

标签: php jquery json


【解决方案1】:

一般情况下,你需要准备这样一个PHP数组,然后应该是json_encode并传递给服务器:

$data = array(

  '03-13-2012' => 'Jazz',
  '07-19-2012' => 'Pop',

);

echo json_encode( $data );
exit;

【讨论】:

    【解决方案2】:

    不要害怕循环

    $output = array();
    foreach($data as $v) {
        $output[key($v)] = current($v);
    }
    echo json_encode($output, 128);
    

    See Live Demo

    【讨论】:

    • @Baba 我使用 return 而不是 echo 因为我需要移动应用程序的 json 响应但 return 只返回数组的最后一个值你能告诉我如何返回整个数组吗?
    【解决方案3】:

    您需要遍历索引数组,使在其中找到的关联数组的键成为第二个关联数组中的键。

    假设:你从一个 JSON 字符串开始,你想以一个 JSON 字符串结束。

    警告:如果遇到重复,您将覆盖。

    下面是我所说的一个例子:

    <?php
    $foo = json_decode('[{"abc":"A123"},{"xyz":"B234"}]');
    $bar = array();
    foreach ($foo as $f) {
            foreach ($f as $k => $v) {
                    $bar[$k] = $v;
            }
    }
    
    echo json_encode($foo)."\n";
    echo json_encode($bar)."\n";
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-05-19
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多