将逗号分隔的字符串转换为列表

时间:2012-10-06 12:37:13

标签: php mysql

通过回复ali,aliiii,asd,我正在通过$row['GROUP_CONCAT(mem_name)'];来调整结果。

如何像列表一样回显它们,以便我可以在点击功能上添加锚标记等。我有查询

$sql=mysql_query("
    SELECT cat_id, GROUP_CONCAT(mem_name)  
    FROM o_newcatmem GROUP BY cat_id
");

我希望这些结果显示如下:

ali
aliiii
asd

3 个答案:

答案 0 :(得分:2)

你有$string这样的

$string = "ali,aliiii,asd";
echo "<pre>";

您有三种选择:

  1. 您可以使用str_getcsv将CSV字符串转换为数组

    $list = str_getcsv($string);
    foreach ( $list as $var ) {
        echo $var, "\n";
    }
    
  2. 使用explode

    将它们转换为数组
    $list = explode(",", $string);
    echo implode("\n", $list);
    
  3. 使用str_replace

    $list = str_replace(",", "\n", $string);
    echo $list;
    

答案 1 :(得分:1)

MySQL GROUP_CONCAT函数有一个SEPARATOR关键字。

  • 您可以在SQL语句中使用GROUP_CONCAT(mem_name SEPARATOR ',') AS mems_name
  • 使用mem_name字段中不存在的分隔符。
  • 使用别名AS mems_name,因此您的PHP代码看起来很简单,例如$row['mems_name']

在您的PHP中,$list = explode('|', $row['mems_name']);

分隔explode数据。{/ 3}

答案 2 :(得分:0)

<?php
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>