【问题标题】:PHP parsing table/array stringPHP解析表/数组字符串
【发布时间】:2015-09-04 08:39:07
【问题描述】:

你好堆栈溢出,
这是我的第一篇文章,我遇到了一个问题,我需要解析这个文本并将其转换为一个数组(它来自数据库)。

"TableToKeyValues"
{
    "inventory"
    {
        "slot2"
        {
            "amount"        "10"
            "item"      "wood_plank"
        }
        "slot1"
        {
            "amount"        "10"
            "item"      "metal"
        }
        "slot3"
        {
            "amount"        "10"
            "item"      "plastic"
        }
    }
}

感谢 rtm516。

【问题讨论】:

    标签: php arrays string


    【解决方案1】:

    我通过多次使用 str_replace 将其格式化为 json 来研究如何做到这一点。

    $inv = preg_replace( "/\r|\n/", "", $inv);
    $inv = str_replace('}', '},', $inv);
    $inv = str_replace('"       "', '":"', $inv);
    $inv = str_replace('"           "', '","', $inv);
    $inv = str_replace('"       {', '":{', $inv);
    $inv = str_replace('"   {', '":{', $inv);
    $inv = str_replace('"{', '":{', $inv);
    $inv = trim(preg_replace('/\t+/', '', $inv));
    $inv = str_replace('},}', '}}', $inv);
    $inv = str_replace('},},', '}}', $inv);
    $inv = str_replace('"TableToKeyValues":', '', $inv);
    $inv = json_decode($inv, true);
    

    编辑:$inv 是数据库中的值。

    【讨论】:

      【解决方案2】:

      如果您希望将其转换为 array,请使用 json_decode

      $arr = json_decode($dataComingFromDBHERE, true);
      print_r($arr);
      

      【讨论】:

      • 我以为是json。数据从何而来?在插入数据库之前。
      • 一个叫garrys mod的游戏,使用lua函数util.TableToKeyValues
      猜你喜欢
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      相关资源
      最近更新 更多