我有一个包含这些数据的数组:
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);
}
答案 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_keys
和implode
方法
print implode(PHP_EOL, array_keys($element))
答案 5 :(得分:0)
The string would look like: 'key','key','key'
$string = '\'' . implode('\',\'', array_keys($array)) . '\'';
答案 6 :(得分:0)