一个字符串变成一个数组 (PHP)

不会武功 发布于 2017/05/18 14:11
阅读 188
收藏 0
PHP

字符串:

CREATE TABLE `bai_white_mobile` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `uniacid` int(11) DEFAULT '0' COMMENT '店铺id',

  `openid` varchar(50) NOT NULL DEFAULT '' COMMENT '用户标识',

  `agentid` int(10) NOT NULL COMMENT '用户id',

  `mobile` varchar(20) NOT NULL DEFAULT '0' COMMENT '手机号',

  `goodstotal` int(10) NOT NULL DEFAULT '0' COMMENT '商品库存',

  `code` varchar(255) NOT NULL DEFAULT '' COMMENT '二维码',

  `addtime` int(11) DEFAULT '0' COMMENT '添加时间',

  `updatetime` int(11) DEFAULT '0' COMMENT '更新时间',

  `status` tinyint(1) DEFAULT '1' COMMENT '状态:1正常,2禁用',

  `type` tinyint(2) DEFAULT '1' COMMENT '类型 ',

  PRIMARY KEY (`id`),

  KEY `idx_openid` (`openid`),

  KEY `idx_mobile` (`mobile`),

  KEY `idx_agentid` (`agentid`)

) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='白名单表'

 

 

 

 

转换成这样的数组:

Array

(

    [id] => `id` int(11) NOT NULL AUTO_INCREMENT

    [uniacid] => `uniacid` int(11) DEFAULT '0' 

    [openid] => `openid` varchar(50) NOT NULL DEFAULT '' 

    [agentid] => `agentid` int(10) NOT NULL 

    [mobile] => `mobile` varchar(20) NOT NULL DEFAULT '0' 

    [goodstotal] => `goodstotal` int(10) NOT NULL DEFAULT '0' 

    [code] => `code` varchar(255) NOT NULL DEFAULT '' 

    [addtime] => `addtime` int(11) DEFAULT '0' 

    [updatetime] => `updatetime` int(11) DEFAULT '0' 

    [status] => `status` tinyint(1) DEFAULT '1' 

    [type] => `type` tinyint(2) DEFAULT '1' 

)

 

 

 

 

我用的方法有点笨.......代码如下.求改进

 

$table_create_str = 'xxxxxxxxxxxxxxxxxxx';
            $tmp_str = str_replace(strstr($table_create_str, 'PRIMARY KEY'), '', $table_create_str);
            $table_create_str = trim(trim(strstr($tmp_str, '` ('), '` ('));
            $res = explode(',
  `', $table_create_str);


            foreach ($res as $kk => $vv) {
                if ($kk > 0) {
                    $fuhao = '`';
                }
                $tmp_str= $fuhao . trim($vv);
               $res[$kk]= str_replace(strstr($tmp_str,'COMMENT'),'',$tmp_str);
                
            }
            $data = array();
            foreach($res as $kk=>$vv){
                preg_match_all("/`(.*)`(.*)/",$vv,$matches);
               $data[$matches[1][0]] = $vv;
            }
            
            
            
            
            var_dump($data);

 

加载中
0
明威
明威

php 里有个 字符串转 数组的函数,  explode() ,试试看

explode()
返回顶部
顶部