如何拆分用逗号分隔的字符串?

时间:2011-07-02 13:46:49

标签: php

我想以逗号分隔的逗号

显示字符串

这是我的代码

function GetItemIds()
{
    $i=0;

    $query="SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT 10";
    $str="";

    $result= mysql_query($query);

    while($result1= mysql_fetch_row($result))
    {
         if($i==0)
         {
           $str .= $result1[0];
         }
          else
         {
         $str .=",".$result1[0];
         }
      }

       echo $strs;
     }

但是在这里我打印str我有这样的输出12345678但是我想要1,2,3,4所以请帮帮我

提前致谢

7 个答案:

答案 0 :(得分:2)

嗯,显然,你没有在循环结束时增加$i变量。

答案 1 :(得分:2)

另一个实施理念:

$a = array();
while($result1= mysql_fetch_row($result))
{
    $a[] = $result1[0];
    }
echo implode(',', $a);

答案 2 :(得分:1)

更好的方法:

function GetItemIds($num = 10) {
    $q = "SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT " . $num;
    $result = mysql_query($q);
    $ids = array();
    while($row = mysql_fetch_assoc($result)) {
        $ids[] = $row['item_id'];
    }
    return implode(',', $ids);
}

echo GetItemIds();

答案 3 :(得分:0)

您的代码会检查$i == 0是否为$str .= $result1[0]

$i定义为0后,您永远不会更改它。将$i++添加到循环的末尾。

答案 4 :(得分:0)

function GetItemIds()
{
    $i=0;

    $query="SELECT item_id FROM common.items ORDER BY item_id DESC LIMIT 10";
    $str = "";
    $result = mysql_query($query);

    while($result1 = mysql_fetch_row($result))
    {
       if($i == 0)
       {
           $str .= $result1[0];
       }
       else
       {
           $str .=",".$result1[0];
       }

       $i++;
    }

    echo $strs;
}

答案 5 :(得分:0)

我会使用数组然后加入:

  $arr = array();
  while( $result1 = mysql_fetch_row($result))
  {
     array_push($arr, $result1[0]);
  }
  return join(",", $arr);

关于你的代码,你需要增加$ i,并返回$ str而不是$ strs ...(我猜错误只有错误)

答案 6 :(得分:-1)

我认为你想从结果数组中创建一个格式化的字符串。

替换

while($result1= mysql_fetch_row($result))
{
...
}

通过

mysql_fetch_array($result,MYSQL_NUM);
$str = implode(',',$result);