从多维数组php生成分组的逗号分隔列表

时间:2014-08-23 03:41:43

标签: php mysql arrays multidimensional-array

我正在尝试对MySQL进行批量插入,因此我需要以这种格式结束值:

(1,2,2),(1,2,8),(1,2,0)

目前我可以生成一个多维数组:

Array
(
    [0] => Array
        (
            [key1] => 1
            [key2] => 2
            [key3] => 2
        )

    [1] => Array
        (
            [key1] => 1
            [key2] => 2
            [key3] => 8
        )

    [2] => Array
        (
            [key1] => 1
            [key2] => 2
            [key3] => 0
        )

)

将数组转换为我需要的“分组逗号分隔列表”的最有效方法是什么?

3 个答案:

答案 0 :(得分:2)

可能是这样的,假设您不必担心在数据中转义逗号和括号。

foreach ($arrays as &$array) {
    $array = '('.implode(',', $array).')';
}

$csv = implode(',', $arrays);

答案 1 :(得分:1)

尝试将数组连接到插入的字符串中。

foreach($array as $a){
    $output .= '('.$a['key1'].','.$a['key2'].','.$a['key3'].'),';
}

$output = substr($output, 0, -1); // remove the last comma

答案 2 :(得分:0)

为什么不使用php' implode函数?

在这种情况下,我要做两个循环:

    $gather=array(); //here we will keep all single arrays
    $multi=array(array('1','2','3'),array('4','5','6'));

    foreach($multi as $single)
    {
    $gather[]="(".implode($single,',').")";
    }

    print_r(implode(",",$gather)); //(1,2,3),(4,5,6)