2010-11-22 86 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工作正常。

檢查來自您的數據庫的值,並確保它們符合您的預期。

編輯: 在數據庫中如何生成此值?它是一個字段中的靜態值,還是從串聯創建的?