2

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

$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";

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

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

4

2 回答 2

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 插入语句,请改用 MySQLi 或 PDO 准备语句

于 2013-05-10T15:01:17.087 回答
1

这应该工作....

$columns = explode(',', $columns);
$values = explode (',', $values); 
$combined = array_combine($columns, $values);
array_walk(&$combined, function(&$v, $k){
    $v = $k."=".$v;
});
$combined = implode(",",$combined);
于 2013-05-10T15:04:01.100 回答