如何在PHP中创建包含给定数组键的字符串?

时间:2012-01-13 07:22:18

标签: php arrays

我有一个包含这些数据的数组:

Array ( 
  [1402377] => 7 
  [1562441] => 7 
  [1639491] => 9 
  [1256074] => 10 
 )

如何创建包含上述数组键的字符串? 基本上,我需要创建一个逗号分隔的字符串,该字符串由数组的键

组成

字符串看起来像:'key','key','key'

我是否需要创建一个由现有数组中的键组成的新数组?

我需要这样做的原因是因为我将使用WHERE in ()语句查询MySQL数据库。我宁愿不必使用foreach语句查询数据库。我正确地解决了这个问题吗?

我尝试使用while语句,并且我能够打印出我需要的数组键,但是我需要这些键才能成为一个数组才能发送到我的模型。

允许我打印数组键的代码如下所示:

while($element = current($array)) {
            $x = key($array)."\n";
            echo $x;
            next($array);
        }

7 个答案:

答案 0 :(得分:3)

$string = implode(',', array_keys($array));

顺便说一句,对于循环数组,请考虑不使用current和next但使用foreach:

foreach ($array as $key => $value) {
    //do something
}

这将自动遍历数组,直到所有记录都被访问过(如果没有记录,则完全没有记录。

答案 1 :(得分:2)

$keys = array_keys($array);
$string = implode(' ',$keys);

在您的情况下,您是否正在使用IN子句中的结果:     $ string = implode(',',$ keys);

答案 2 :(得分:1)


$yourString = '';
foreach($yourArr as $key => $val) {
 $yourString .=$key.",";
}
echo rtrim($yourString, ",");

//OR
$yourString = implode(",", array_keys($yourArray));

请参阅:array_keys

答案 3 :(得分:1)

implode(', ', array_keys($array));

答案 4 :(得分:0)

使用php array_keysimplode方法

print implode(PHP_EOL, array_keys($element))

答案 5 :(得分:0)

The string would look like: 'key','key','key'

$string = '\'' . implode('\',\'', array_keys($array)) . '\'';

答案 6 :(得分:0)

取消参数并将结果插入查询可能会导致injection漏洞。而是通过repeating一串参数占位符创建一个准备好的语句。

$paramList = '(' . str_repeat('?, ', count($array) - 1) . '?)'
$args = array_keys($array);
$statement = 'SELECT ... WHERE column IN ' . $paramList;
$query = $db->prepare($statement);
$query->execute($args);