我正在为学校创建一个网站。
我将学生的科目保存在数据库中。
它会像这样保存 - > 1,2,3,6,7
这意味着学生X的科目ID 1,2,3,6和7
来自一名学生的科目从一个变量$科目的数据库中返回 我想输出主题名称(主题名称也存储在数据库中)。 但由于$ subject中返回的变量不是一个主题,而是多个,我无法搜索主题名称。是否可以将$ subject转换为数组,以便$ subject(0)在我的示例中为1,$ subject [1]为2(见上文@它会像这样保存)。
简单地说: 它不应该 $ subject = 1,2,3,6,7 但
$subjects[0] = 1
$subjects[1] = 2
$subjects[2] = 3
$subjects[3] = 6
$subjects[4] = 7
答案 0 :(得分:2)
您可以使用explode将字符串转换为数组:
explode(',', $students);
然而,应该注意的是,爆炸然后对数据库进行更多查询以获取主题名称是一种非常低效的方法。而是将学生主题存储在一个字段中,您应该为该关系创建一个完整的表。因此,除了学生表和主题表之外,您还有以下关系:
表:StudentSubjects
Student | Subject
-----------------
1 | 1
1 | 2
1 | 3
1 | 6
1 | 7
2 | 2
2 | 4
2 | 6
2 | 8
3 | 3
然后,您可以在一个查询中查询您的数据库并获取特定学生或学生组的主题名称列表。
答案 1 :(得分:0)
您可以选择2种方式:
爆炸:
<?php
$str = '1,2,3,6,7';
$chars = explode(',', $str);
print_r($chars);
?>
或preg_split:
<?php
$str = '1,2,3,6,7';
$chars = preg_split('/,/', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>