将PDO fetchAll数组转换为javascript数组

时间:2013-06-25 18:40:58

标签: php jquery arrays jquery-autocomplete

我搜索了一下,我无法找到答案。

我正在为表单使用jQuery自动完成功能,可能的自动完成值来自数据库。

我有这个数组:

Array
(
    [0] => Array
        (
            [kurssi] => Course 1
            [0] => Course 1
            [tuotekoodi] => Course1Code
            [1] => Course1Code
        )

    [1] => Array
        (
            [kurssi] => Course2
            [0] => Course2
            [tuotekoodi] => Course2Code
            [1] => Course2Code
        )

    [2] => Array
        (
            [kurssi] => Course3
            [0] => Course3
            [tuotekoodi] => Course3Code
            [1] => Course3Code
        )

)

我需要像这样(或者以jQuery Autocomplete接受它的形式):

var course = [
"Course1",
"Course2",
"Course3",
];

var code = [
"Course1Code",
"Course2Code",
"Course3Code"];

所以我必须从php数组中创建两个不同的javascript数组,但是如何?

3 个答案:

答案 0 :(得分:0)

您必须使用json_encode()将PHP数组传输到Javascript。 JQuery有自己的JSON函数,用于将JSON字符串解码为Javascript对象。

答案 1 :(得分:0)

序列化或json_encode字符串。 jQuery提供了JSON解码方法(getJSON,parseJSON)。示例输出:http://phpfiddle.org/main/code/bpr-ndx

答案 2 :(得分:0)

以下是您需要做的事情: 1:你原来的阵列:

 $arr = [
     0=>["kursi"=>"Course1","tuotekodi"=>"Course1Code"],
     1=>["kursi"=>"Course2","tuotekodi"=>"Course2Code"],
     2=>["kursi"=>"Course3","tuotekodi"=>"Course3Code"]
     ];

2:根据需要转换数组以用于编码:

$toJson =array();
         foreach ($arr as $key => $value) {
             foreach($value as $k =>$v){
                 if(isset($toJson[$k])){
                     $toJson[$k][] = $v;
                 }else{
                     $toJson[$k] = array();
                     array_push($toJson[$k], $v);
                 }
             }
}

3:结果:

var_dump(json_encode($toJson));

pdo-to-json