我有一个看起来像这样的数组:
array('first' => 'value1', 'second' => 'value2', ...);
如何获取所有键并将它们放在以逗号分隔的字符串中?
最终,我需要像这样的东西来执行查询:
values IN ('first','second',...)
谢谢
应该足够了:
echo "'".implode("','", array_keys($array))."'";
array_keys()
来获取数组的索引。$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));
VALUE IN (?)
和 ->execute(array(implode("','",array_keys($array))
。 - Rufinusarray_keys
函数会获取所有的键名,implode
函数会将它们组合成一个字符串。
implode("','", array_keys($array));
$result = '';
$keys = array_keys($array);
foreach($keys as $key) {
$result .= $key.',';
}
$result = rtrim($result, ',');
first, second
而不是 'first','second'
。 - Rufinus
implode()
函数将其合并。 - Patrick James McDougle