2010-11-22 124 views
2

我在使用PHP中的爆炸函数时遇到问题。PHP中爆炸()的问题

我从数据库中提取的字符串如下:

column_name 
    0,2000,0,3000,1000,7000,1000,0,0,0 

揪成一个对象调用$记录这个我使用爆炸功能进行排列出来的后...作为如下:

$array = explode(",",$recordset->column_name) 

但一些如何,该阵列是不是如我所期望的......

这是我所得到的,当我回声数组:

 Array 
    (
    [0] => 0 
    [1] => 0 
    [2] => 0 
    [3] => 3000 
    [4] => 7000 
    [5] => 2000 
    [6] => 1000 
    [7] => 1000 
    [8] => 0 
    [9] => 0 
    ) 

正如你所看到的,我没有得到的值作为我应该......但是,如果我从数据库中的字符串很短,说:

1000,0,1200,0 

上述逻辑正常工作。

我不知道如何调试或解决这个问题..

请帮忙吗?

+7

如果你var_dump($ recordset-> column_name);`? – Stephen 2010-11-22 19:02:05

+0

你好斯蒂芬,我得到这个:“0,0,0,3000,7000,2000,1000,1000,0,0” – 2010-11-22 19:03:37

+5

所以你得到爆炸数组代表的字符串? – Stephen 2010-11-22 19:04:14

回答

5

问题不在于explode()。问题是你从数据库中提取的字符串。如果这个字符串以某种方式连接起来,我会开始寻找。如果没有,请验证数据库中的字符串,或者验证访问该表的查询。

查看GROUP_CONCAT的文档。您可以在语法中指定顺序。

1

问题没有爆炸,因为您可以在this codepad中看到explode工作正常。

检查来自您的数据库的值,并确保它们符合您的预期。

编辑: 在数据库中如何生成此值?它是一个字段中的静态值,还是从串联创建的?