组合两个数组并使用符号(=)分隔彼此

时间:2013-05-10 14:55:23

标签: php arrays delimiter

我有两个这种结构的变量:

$columns = "col1, col2, col3";

$values = "$value1, $value2, $value3";

我需要做什么才能获得:

$combined = "col1 = $value1, col2 = $value2, col3 = $value3";

我很确定我需要:

explode(',', $columns);
explode (',', $values);
$combined = array_combine($columns, $values);
$combined = implode(',', $combined);

然后我得到:

$combined = "col1, $value1, col2, $value2, col3, $value3";

如何用“=”替换所有其他逗号?

这是解决这个问题的最好方法吗?

2 个答案:

答案 0 :(得分:3)

$columns = 'col1, col2, col3';
$values = '$value1, $value2, $value3';

$result = implode(
    ', ',
    array_map(
        function ($c, $v) {
            return $c . ' = ' . $v;
        },
        explode(',', $columns),
        explode(',', $values)
    )
);

var_dump($result);

但是如果你想要它来构建一个SQL insert语句,那么使用MySQLi或PDO预处理语句

答案 1 :(得分:1)

这应该有效....

$columns = explode(',', $columns);
$values = explode (',', $values); 
$combined = array_combine($columns, $values);
array_walk(&$combined, function(&$v, $k){
    $v = $k."=".$v;
});
$combined = implode(",",$combined);