搜尋

首頁  >  問答  >  主體

php - 如何将下面的字符串转成数据 键值对应 不使用 eval

$str = 'array("1"=>"给对方","2"=>"发鬼地方","5"=>"","6"=>"发鬼地方","7"=>"发光飞碟");';
巴扎黑巴扎黑2774 天前554

全部回覆(3)我來回復

  • 迷茫

    迷茫2017-04-11 10:05:24

    参考@oraoto

    $str = 'array("1"=>"给对方","2"=>"发鬼地方","5"=>"","6"=>"发鬼地方","7"=>"发光飞碟");';
    $s= str_replace(['array(','=>',');'],['{',':','}'],$str);
    print_r(json_decode($s,1));
    Array
    (
        [1] => 给对方
        [2] => 发鬼地方
        [5] => 
        [6] => 发鬼地方
        [7] => 发光飞碟
    )

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 10:05:24

    思路:

    1. 去掉开头的array(和最后的);,变成:

      '"1"=>"给对方","2"=>"发鬼地方","5"=>"","6"=>"发鬼地方","7"=>"发光飞碟"'
    2. =>替换成:,变成:

      '"1":"给对方","2":"发鬼地方","5":"","6":"发鬼地方","7":"发光飞碟"'
    3. 前后加{},变成:

      '{"1":"给对方","2":"发鬼地方","5":"","6":"发鬼地方","7":"发光飞碟"}'
    4. json_decode

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-11 10:05:24

    用正则处理,前提是你的value里面不会有 => 这样的文字

    回覆
    0
  • 取消回覆