2012-09-12 49 views
0

我坐在這個很長一段時間,並不能找到一個解決方案:如何合併陣列通過json_encode函數從MySQL接收

通過PHP文件使用功能json_編碼(以下腳本)i接收數據從MySQL作爲一組數組例如["9,8","15,14","18,17","29,40,10,9"],在通過使用$ .parseJSON功能(下面的腳本)主文件,

接收與索引對象一個數組作爲["9,8","15,14","18,17","29,40,10,9"....] 代替[9,8,15,14,18,17,29,40,10,9],

如何合併在一起的所有此對象??

我試圖用$ .merge功能,但不work.Help?;-)

/////receive.php file////// 
$ask = mysql_query("SELECT numbers FROM bying"); 
if(!ask) 
{ 
    die('incorrect ask'.mysql_error()); 
} 
else{ 
    $tab = array(); 
    while ($row = mysql_fetch_assoc($ask)) 
    { 

    $data=$row['numbers']; 
    array_push($tab,$data); 

} 

echo json_encode($tab); 
mysql_free_result($ask); 
} 

與$ .parseJSON功能HTML文件

$.post('receive.php', function(data) 
       { 

       var table1=[]; 
       table1 = $.parseJSON(data); 
        var numbers=$.merge([],table1);) 
        for(var i=0;i<numbers.length;i++) 
        { 
        alert(numbers[i]); 

        } 
} 
+0

Martin,如果您喜歡Krycke的回答,您必須點擊複選框接受他的回答。您可以在Meta上閱讀更多內容:http://meta.stackexchange.com/a/5235/195067 –

+0

使用'mysql_ *'不安全且安全,並且使您的代碼易受SQL注入攻擊,請在此處閱讀更多內容:http: //sackoverflow.com/questions/11939226/sql-injections-and-adodb-library-general-php-website-security-with-examples –

回答

1

這看起來$data是逗號分隔的數字串,如果是這樣,你可以用逗號分割它,然後合併兩個數組:

$ask = mysql_query("SELECT numbers FROM bying"); 
if(!ask) 
{ 
    die('incorrect ask'.mysql_error()); 
} 
else { 
    $tab = array(); 
    while ($row = mysql_fetch_assoc($ask)) { 
     $data = explode(',', $row['numbers']); 
     $tab = array_merge($tab, $data); 
    } 

    echo json_encode($tab); 
    mysql_free_result($ask); 
} 
+0

thanx,現在它的工作;-) – martin

+1

沒問題的人,也許加入這個作爲回答你的問題? ;) – Krycke

+0

是的,這是我的問題的答案,現在所有工作正常...... – martin

0

爲什麼不以'明顯'的方式來做,迭代遍歷數組,將每個字符串拆分爲','並將每個解析的數字追加到您構建的數組中?

例如

var newNums = []; 
    for (var i=0; i<table1.length; i++) { 
     newNums = newNums.concat(table1[i].split(',')); 
    } 
+0

'split'已被棄用,應該使用'explode'代替。 – Krycke

+0

這是一個js的例子;對不起,我沒有澄清 – drobert

+0

啊,當然,我看到他使用的是PHP,所以我認爲這就是你展示的代碼。但我可以看到它不是。 – Krycke