繁体   English   中英

PHP数组转换为json格式

[英]PHP array to json format

我试图根据我在数组中获得的一些PHP数据创建图表,如果我运行以下命令

<?php     
    $out = array_values($periodi);  
    echo json_encode($out, JSON_PRETTY_PRINT); 
?>

我得到这个json格式

   [
    "Francia",
    "Italia",
    "Italia",
    "Germania",
    "Afghanistan",
    "Italia"
]

虽然我正在寻找的是获得这样的格式。 不管值是多少,我如何在Roder中添加一个专有名称以沿这些路线获取内容?

var data = [{
    "name": "Tokyo",
    "data": 3.0
}, {
    "name": "NewYork",
    "data": 2.0
}, {
    "name": "Berlin",
    "data": 3.5
}, {
    "name": "London",
    "data": 1.5
}];

print_r($ periodi);

数组([0] => Moderno [1] => Contemporaneo [2] => Contemporaneo [3] => Contemporaneo [4] => Contemporaneo)

我有另一个具有不同数据的数组,但是格式仍然错误:

Array([francese] => Array([maschio] => Array([0] => 1)[femmina] => Array([0] => 1))[chimica] => Array([maschio] => Array([0] => 1 [1] => 1))[fisica] => Array([maschio] => Array([0] => 1 [1] => 1)[femmina] => Array( [0] => 1))[scienze] => Array([maschio] => Array([0] => 1))[inglese] => Array([maschio] => Array([0] => 1 ))[spagnolo] =>数组([maschio] =>数组([0] => 1))[italiano] =>数组([femmina] => Array([0] => 1))))

 {
        "maschio": [
            true
        ],
        "femmina": [
            true
        ]
    },
    {
        "maschio": [
            true,
            true
        ]
    },
    {
        "maschio": [
            true,
            true
        ],
        "femmina": [
            true
        ]
    },
    {
        "maschio": [
            true
        ]
    },
    {
        "maschio": [
            true
        ]
    },
    {
        "maschio": [
            true
        ]
    },
    {
        "femmina": [
            true
        ]
    }
]
    $jsonArr = array();
    foreach($periodi as $key => $val){
        $jsonArr[$key]['name'] = $val;
        $jsonArr[$key]['data'] = $key; //there is no source for priority 
          //in your array so i just put $key as priority variable
    }

    json_encode($jsonArr);

您应该像这样使数组...

Array
(
    [0] => Array
        (
            ['name'] => 'Tokyo'
            ['data'] => 3
        )

    [1] => Array
        (
            ['name'] => 'NewYork'
            ['data'] => 2
        )
)

如何制作数组?

$final_array = array();
foreach($data as $key=>$value)
{
    $final_array[]=array(
                "name"=>$key,
                "data"=>$value
               );
}

然后,您只需要对$final_array进行json_encode $final_array

PHP代码演示

<?php
$array=
    [
    "Moderno",
    "Contemporaneo",
    "Contemporaneo",
    "Contemporaneo",
    "Contemporaneo"
];

$array=array_count_values($array);
$result=array();
foreach($array as $key => $value)
{
    $result[]=array("name"=>$key,"data"=>$value);
}
print_r(json_encode($result));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM