减少 sql 查询的数组

reducing an array for sql query

我有动态字段,所以我应该将列名和值放入一个数组中,然后为 sql 查询减少数组,我使用 array_reduce()

这是针对列的:

function fscol($k1,$k2)
{
    return $k1 . "," . $k2;
}
$slides_col_reduce = array_reduce($slides_col, 'fscol');
$final_fscol = substr($slides_col_reduce,1);

无论我输入多少列名称,它都可以正常工作。

但我的问题是值数组:

function fslide($v1,$v2)
{
    return "'" . $v1 . ",'" . $v2 . "'";
}
$final_fslide = substr($slides_reduce,0);

即使我更改 substr 偏移量,它也会根据值有额外或更少的引用。例如:

'','Slide_1.jpg','Slide_4.jpg'

'''','Slide_1.jpg','Slide_2.jpg','Slide_3.jpg','Slide_4.jpg'

我该如何解决这个问题?

注:

这是针对 SQL 列值的。所以这是我想要的输出 -> 'Val1', 'Val2', 'Val3'

您可以使用以下代码。

$str_fields = sprintf("'%s'", implode("','", $fields_array));

但是如果你的值可能有单引号,你应该考虑一下。在这种情况下,您可以使用 array_map.