php 数组到 javascript 对象

标签 php javascript json

我有这样的案例:

我有 json 数据:

[{
        "1377412272": {
            "user_id": "1374050643",
            "date": "2013-08-24",
            "ip": "::1"
        }
    },
    {
        "1377412279": {
            "user_id": "1374050643",
            "date": "2013-08-25",
            "ip": "::1"
        }
    }
    , {
        "1377412287": {
            "user_id": "1377346094",
            "date": "2013-08-25",
            "ip": "::1"
        }
    }, {
        "1377413058": {
            "user_id": "1374050643",
            "date": "2013-08-25",
            "ip": "::1"
        }
    },
    {
        "1377413069": {
            "user_id": "1377346094",
            "date": "2013-08-25",
            "ip": "::1"
        }
    }
    , {
        "1377413074": {
            "user_id": "1377346094",
            "date": "2013-08-25",
            "ip": "::1"
        }
    },
    {
        "1377413079": {
            "user_id": "1377346094",
            "date": "2013-08-25",
            "ip": "::1"
        }
    }
]

然后,我已经转换为数组 PHP

$newArr = array();
        foreach ($view['con'] as $key => $value) {
            foreach ($value as $k => $v) { 
                if (isset($newArr[$v['user_id']][$v['date']])) {
                    $newArr[$v['user_id']][$v['date']]++;
                } 
                else
                    $newArr[$v['user_id']][$v['date']] = 1; 
                $newArr[$v['user_id']][$v['date']] = isset($newArr[$v['user_id']][$v['date']]) ? $newArr[$v['user_id']][$v['date']]++ : 1;
            }
        }

上面的脚本产生的 json_encode 结构如下:

Array
( 
    [A] => Array
        (
            [2013-08-24] => 1
            [2013-08-25] => 2
        )

    [B] => Array
        (
            [2013-08-25] => 4
        )

)

最后,我希望它是 javascript 对象

[
  ["date","A","B"],
  [2013-08-24,1,0],
  [2013-08-25,2,4]
]

如何制作?...

最佳答案

要获得这样的输出,你应该这样做

$countArr = array();
foreach ($data as $key => $value)
{
    foreach ($value as $k => $v)
    {
        if (isset($countArr[$v['date']][$v['user_id']]))
        {
            $countArr[$v['date']][$v['user_id']]++;
        }
        else
        {
            $countArr[$v['date']][$v['user_id']] = 1;
        }
    }
}
$newArr = array();
foreach ($countArr as $date => $val)
{
    $row = array($date);
    $newArr[] = array_merge(array($date), array_values($val));
}
echo "<pre>";
print_r($newArr);
echo json_encode($newArr)

如果你打印出 $newArr 它将看起来像这样

Array
(
    [0] => Array
        (
            [0] => 2013-08-24
            [1] => 1
        )

    [1] => Array
        (
            [0] => 2013-08-25
            [1] => 2
            [2] => 4
        )

)

json_encode 将输出

[["2013-08-24",1],["2013-08-25",2,4]]

关于php 数组到 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415323/

相关文章:

php - 在类中包含来自外部 php 文件的方法

php - 结合图像和音频 ffmpeg xampp php

javascript - 使用 Ajax 和 Symfony2 进行即时搜索

PHP通过将天数添加到可变日期来计算 future 日期

javascript - 在回发时保持 div 可见

javascript - 从 Chrome 扩展 : concurrency issue? 在页面中注入(inject) Javascript

javascript - Angularjs 检索特定名称/对象

javascript - 变量递增不正确

php - 从 php 文件在 mysql 数据库中插入 JSON 数组

c# - iOS post json数据到web服务并返回结果