将数组的所有索引放在逗号分隔的字符串中

时间:2013-01-17 13:42:36

标签: php arrays implode

我有一个如下所示的数组:

array('first' => 'value1', 'second' => 'value2', ...);

如何获取所有密钥并将它们放在以逗号分隔的字符串中?

最后我需要这样的东西来进行查询:

values IN ('first','second',...)

由于

5 个答案:

答案 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, ',');