我有两个这种结构的变量:
$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";
如何用“=”替换所有其他逗号?
这是解决这个问题的最好方法吗?
答案 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);