如何通过PHP将一列json对象拆分为更多列

Posted

技术标签:

【中文标题】如何通过PHP将一列json对象拆分为更多列【英文标题】:How to split a Column of json Object to More Column via PHP 【发布时间】:2020-12-19 08:34:23 【问题描述】:

如何拆分这个 json 对象以发布到数据库名称、爱好、年龄的列


"student1":"john smitch,reading,15",
"student2":"albert North, running,13"

我的数据库名称:新的,表名称:注册,这是我的 php 代码:

 public function index_post()

        //$this->some_model->update_user( ... );
        $data = [
        'name' => $this->post('student1'),
   ];
            $message = ['registration was successful']
            $this->db->insert("registration", $data);
            $this->set_response($message, REST_Controller::HTTP_CREATED); // CREATED (201) being the HTTP response code

【问题讨论】:

【参考方案1】: 将数据设为 PHP 数组或对象 遍历并修剪以逗号分隔的条目 插入行
$json = '
    "student1":"john smitch,reading,15",
    "student2":"albert North, running,13"
';

$sth = $db->prepare('INSERT INTO registration SET name=?, hobby=?, age=?');
foreach(json_decode($json) as $key => $value)
    $sth->execute(array_map(fn($e) => trim($e), explode(',', $value)));

【讨论】:

【参考方案2】:

你可以先解码 JSON

$students = json_decode($json);

然后你可以遍历所有学生

foreach($students as $key => $student)

现在你可以用

分割这个字符串了
$studentAtributes = explode(',', $student);

然后遍历所有属性

foreach($studentAtributes as $attribute)

【讨论】:

以上是关于如何通过PHP将一列json对象拆分为更多列的主要内容,如果未能解决你的问题,请参考以下文章

如何将一列拆分为多列

Pandas Dataframe:如何将一列拆分为多个单热编码列[重复]

如何使用 SQL 将一列拆分为多列

将一列拆分为多行

Pandas: 如何将一列中的文本拆分为多行? | Python

将一列拆分为其他列的 SQL 命令