我有一个如下所示的数组:
array('first' => 'value1', 'second' => 'value2', ...);
如何获取所有密钥并将它们放在以逗号分隔的字符串中?
最后我需要这样的东西来进行查询:
values IN ('first','second',...)
由于
答案 0 :(得分:12)
应该足够了:
echo "'".implode("','", array_keys($array))."'";
答案 1 :(得分:2)
简单的答案是使用array_keys()
来获取数组索引。
但是,由于您在SQL中使用它,因此正确地转义值非常重要:
$db = new PDO( ... );
$sql .= "value IN (" .
join(', ', array_map(array($db, 'quote'), array_keys($arr))) . ")";
或者,当您更喜欢使用准备好的陈述时:
$stmt = $db->prepare('... WHERE value IN (' .
join(',', array_fill(0, count($arr), '?')) . ')');
$stmt->execute(array_keys($arr));
答案 2 :(得分:1)
array_keys
会获取所有密钥,implode
会将它们组合成一个字符串。
implode("','", array_keys($array));
答案 3 :(得分:0)
at array_keys。这似乎是你需要的东西。要组合密钥,请按照许多其他用户的建议使用内爆:
implode("','", array_keys($array));
答案 4 :(得分:0)
$result = '';
$keys = array_keys($array);
foreach($keys as $key) {
$result .= $key.',';
}
$result = rtrim($result, ',');