虽然循环内爆保持旧组

时间:2014-01-08 13:55:37

标签: php

当我尝试在 while 循环中使用implode时。以前的所有结果都在最后的结果中。

我要做的是在每种情况下对主题的标签进行分组。

这是代码

//$fetch = select from table;

while ( $p = mysql_fetch_array($fetch) ) {
    $skills = explode(',',$p[skills]);
    foreach($skills as $skls){
        $skills2[] = $skls;
    }
    $skills3 = implode(' ',$skills2);
}

但所有结果都出现在最终结果中。

例如:

1 | php,c++,c
2 | perl,c#
3 | photoshop,web_support

输出结果为:

  • PHP中,C ++,C
  • PHP中,C ++,C,PERL,C#
  • PHP中,C ++,C,PERL,C#,软件,web_support

1 个答案:

答案 0 :(得分:1)

如果您只想要外循环的每次迭代的值,那么每次都需要重置变量。

否则$ skills2 []将继续向$ skills2数组添加新索引。

尝试类似:

while ( $p = mysql_fetch_array($fetch) ) { 
    $skills = explode(',',$p[skills]); 
    $skills2 = array(); // initialise $skills2 as an empty array
    foreach($skills as $skls){ 
        $skills2[] = $skls; 
    } 
    $skills3 = implode(' ',$skills2);
    //var_dump($skills3);
}