如何用反引号加入包含每个值的数组数据?
在不改变阵列本身的情况下需要一条线的解决方案。
$coldata = array('value1','value2','value3');
$joined_coldata = join(', ', $coldata);
预期结果:
`value1`, `value2`, `value3`
$joined_coldata = empty($coldata)?"":"`".implode('`, `', $coldata)."`";
这会在每个连接周围使用反引号来内爆字符串(join 是内爆的别名),并在结果周围添加反引号,该结果看起来像内爆:
value1`, `value2`, ..., `valueN
并额外检查它是否为空:然后它不输出任何内容而不是两个反引号。
这是“便宜”的方式:
$joined_coldata = "`".implode("`, `",$coldata)."`";
以及“正确”的方式(扩展到几行,但都是一行“代码”):
$joined_coldata = implode(",",array_map(function($a) {
// perform escaping here
return "`".$a."`";
},$coldata));
$coldata = array('value1','value2','value3');
$joined_coldata = "'" . join("','", $coldata) . "'";
应该做的伎俩
不漂亮,但这是最简单的方法:
$joined_coldata = '`' . join('`, `', $coldata) . '`';
确保它$coldata
不是空的 - 如果是,您需要单独处理它以避免获得单个空元素!