需要帮助PHP到JSON数组

维格涅什

我在下面有一个字符串

$string = ot>4>om>6>we>34>ff>45

我希望JSON输出像

 [{"name":"website","data":["ot","om","we","ff"]}]

 [{"name":"websitedata","data":["4","6","34","45"]}]

我尝试过的

$query = mysql_query("SELECT month, wordpress, codeigniter, highcharts FROM project_requests");
$category = array();
$category['name'] = 'website';

$series1 = array();
$series1['name'] = 'websitedata';

while($r = mysql_fetch_array($query)) {
    $category['data'][] = $r['month'];
  }
$result = array();
array_push($result,$category);
array_push($result,$series1);

print json_encode($result, JSON_NUMERIC_CHECK);

但是上面的代码仅适用于mysql表中的行中存在数据的情况,我想要的是使用上述字符串中的数据实现相同的结果。那是

  $string = ot>4>om>6>we>34>ff>45

新更新:

我想修改相同的字符串

$string = ot>4>om>6>we>34>ff>45

进入

json输出:

[
     {
          "type" : "pie",
          "name" : "website",
          "data" : [
               [
                    "ot",
                     4
               ],
               [  
                    "om",
                    6
               ],
               [  
                    "we",
                    34
               ]
           ]
     }
]

我已经更新了答案,请检查json部分,我想要php代码。问候

乔南

您可以explode()在上>,然后遍历元素:

$string = "ot>4>om>6>we>34>ff>45";

$array1 = [
    'name'=>'website',
    'data'=>[]
]
$array2 = [
    'name'=>'websitedata',
    'data'=>[]
]
foreach(explode('>', $string) as $index => $value){
    if($index & 1) //index is odd
        $array2['data'][] = $value;
    else //index is even
        $array1['data'][] = $value;
}

echo json_encode($array1); //prints {"name":"website","data":["ot","om","we","ff"]}
echo json_encode($array2); //prints {"name":"websitedata","data":["4","6","34","45"]}

使用preg_match_all()以下解决方案

$string = "ot>4>om>6>we>34>ff>45";

preg_match_all('/(\w+)>(\d+)/', $string, $matches);

$array1 = [
    'name'=>'website',
    'data'=> $matches[1]
];
$array2 = [
    'name'=>'websitedata',
    'data'=> $matches[2]
];

echo json_encode($array1); //prints {"name":"website","data":["ot","om","we","ff"]}
echo json_encode($array2); //prints {"name":"websitedata","data":["4","6","34","45"]}

更新:

要获得所需的第二种数组,请使用以下命令:

//since json_encode() wraps property names in double quotes (which prevents the chart script from working), you'll have to build the json object manually
$string = "ot>4>om>6>we>34>ff>45";

preg_match_all('/(\w+)>(\d+)/', $string, $matches);

$data = [];
foreach($matches[1] as $index => $value){
    if(isset($matches[2][$index]))
        $data[] = '["' . $value . '",' . $matches[2][$index] . ']';
}

$type = 'pie';
$name = 'website';

echo $jsonString = '[{type:"' . $type . '",name:"' . $name . '",data:[' . implode(',', $data) . ']}]'; // prints [{type:"pie",name:"website",data:[["ot",4],["om",6],["we",34],["ff",45]]}]

更新#2:

这段代码使用explode(),虽然它可能不是最有效的方式,但它可以工作。

//since json_encode() wraps property names in double quotes (which prevents the chart script from working), you'll have to build the json object manually
$string = "ot>4>om>6>we>34>ff>45";

$keys = [];
$values = [];

foreach(explode('>', $string) as $key => $value){
    if(!($key & 1)) //returns true if the key is even, false if odd
        $keys[] = $value;
    else
        $values[] = $value;
}

$data = [];
foreach($keys as $index => $value){
    if(isset($values[$index]))
        $data[] = '["' . $value . '",' . $values[$index] . ']';
}

$type = 'pie';
$name = 'website';

echo $jsonString = '[{type:"' . $type . '",name:"' . $name . '",data:[' . implode(',', $data) . ']}]'; // prints [{type:"pie",name:"website",data:[["ot",4],["om",6],["we",34],["ff",45]]}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JSON短语php数组中需要帮助

来自分类Dev

需要 JSON 到 PowerShell 帮助

来自分类Dev

PHP:帮助重组JSON数组

来自分类Dev

需要帮助,使用PHP将关联数组转换为嵌套JSON

来自分类Dev

需要帮助将数组列表集成到Flutter GridView中

来自分类Dev

从数组到JSON PHP

来自分类Dev

需要帮助的数组字段

来自分类Dev

需要帮助jQuery将数据发布到php文件

来自分类Dev

php,sql行到xml文件的转换。需要帮助

来自分类Dev

需要帮助使用 SwiftyJSON 用 JSON 数据填充数组

来自分类Dev

PHP数组:需要帮助才能添加新行

来自分类Dev

PHP - 需要 __construct() 帮助

来自分类Dev

需要帮助以PHP解析JSON来构建URL

来自分类Dev

PHP数组到Json对象

来自分类Dev

接收JSON数组到PHP

来自分类Dev

json到php数组cdnjs

来自分类Dev

JSON数组到PHP DateTime

来自分类Dev

需要帮助拆分数组

来自分类Dev

需要帮助找到数组的值

来自分类Dev

需要 Flatlist 和数组的帮助

来自分类Dev

JSON对象到PHP数组-无效的数组

来自分类Dev

将php数组覆盖到json数组

来自分类Dev

php数组到json数组(使用sendgird)

来自分类Dev

PHP数组帮助,爆炸

来自分类Dev

PHP数组帮助,爆炸

来自分类Dev

PHP : 帮助过滤数组

来自分类Dev

需要帮助来修复我在“通知:数组到字符串转换”中的错误

来自分类Dev

需要帮助遍历JSON键值对

来自分类Dev

需要帮助阅读 JSON JAVA