如何在php中将零索引逗号分隔值分解为单个字符串

时间:2014-12-31 10:38:35

标签: php mysql mysqli

我想打破从数据库中检索到的逗号分隔值,然后将每个个体放在一个字符串中,并仅在for循环中打印它。我从数据库中获取值,但我无法破坏值。以下是我到目前为止所做的代码。请帮助解决我的问题。提前谢谢。

$query="select * from create_segment";
$result = mysql_query($query,$link) or die(mysql_error());
$number_of_segment=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result))
{
    $segments[]=$row;
}

foreach($segments as $success) {
 $thePostIdArray = explode(', ', $success['subjects']);
 for($i=0; $i < count($thePostIdArray); $i++)
  {
     echo "string...".$strings=$thePostIdArray[$i];  
  }
} 

输出:

string...1,2,3,4,5,6,7,8,9,10
string...1,2,3,4,5,6,7,8

但我想要这样的事情:

for(......)
{
echo "values...".$i;
}

应该输出

values...1
values...2
values...3 and so on.

我的数据库结构如下:

id    subjects

1     1,2,3,4,5
2     1,2,7

4 个答案:

答案 0 :(得分:1)

请尝试在

中使用','代替', '
explode(', ', $success['subjects']);

声明所以它看起来像:

explode(',', $success['subjects']);

答案 1 :(得分:1)

使用:

explode(',', $success['subjects'])

逗号后面有空格,但数据库值中没有空格。

答案 2 :(得分:0)

如果您有机会更改数据库结构,则应将该表转换为以下内容:

Id   Subject
1    1
1    2
1    3
2    1
etc.

它将使您的查询更容易,并且它是正确的方法。它还将使您将来更容易将此表与其他表连接以获得所需的结果。我知道这并没有回答你的问题,但一些好的建议永远不会受到伤害。其中一个答案将直接回答您的问题。

答案 3 :(得分:0)

$query="select * from create_segment";
$result = mysql_query($query,$link) or die(mysql_error());
$number_of_segment=mysql_num_rows($result);

while($row = mysql_fetch_assoc($result))
{
    foreach (explode(',',$row['subjects']) as $value){
       echo echo "string... {$row['id']} " .  $value . '<br />';
    }
}