我有一系列的ID(123456,654789,395855)。我将需要用单个qoute和逗号分割它,以便能够在mysql查询中使用它。实际上我需要IN()函数。
是否有任何本机php函数将所有数组节点放在引号内(检索字符串)而不使用任何循环?
到目前为止,我想出了这个。但我正在寻找更好的方式。$ids = array(123456,654789,395855);
foreach ($ids as $id){
$stringIds .= "'". $id . "',";
}
$stringIds = rtrim ($stringIds, ",");
debug($stringIds);
答案 0 :(得分:4)
像往常一样使用implode(),在之前/之后使用一些额外的引号:
$ids = array(123456,654789,395855);
$string = "'" . implode("','", $ids) . "'";
答案 1 :(得分:0)
不,没有本机功能可以做到这一点。你有什么工作就好了。
答案 2 :(得分:0)
您可以使用implode
和array_map
来实现此目标:
implode(', ', array_map(function($id) { return "'$id'"; }, $ids));
答案 3 :(得分:0)
您可以使用array_map
和implode
,也可以查看array_reduce
$ids = array(123456,654789,395855);
$quoted = array_map(function($id) { return "'$id'"; }, $ids);
$stringIds = implode(', ', $quoted);
echo $stringIds;
请参阅ideone
答案 4 :(得分:0)
您可以使用php的内爆功能将数组分成单引号和逗号分隔列表。
$array = array(123456,654789,395855);
$comma_list = "'" .implode("', '", $array) . "'";
echo $comma_list;
以下是对文章的引用。
http://codingcyber.com/how-split-array-single-quotes-and-comma-separated-list-php-57/