2012-09-12 43 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