array_intersect_key带有MYSQL数据库的PHP数组

时间:2010-01-27 15:55:15

标签: php mysql intersection

我在PHP中有一个简单的数组,比如说

[1, 2, 4, 5, 6, 7]

我希望查询MYSQL数据库

[1, who]
[2, where]
[3, some]
[6, there]
[9, too]

我只希望收到PHP数组和数据库的indices列之间的交集行。所以这会导致

[1, who]
[2, where]
[6, there]

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:4)

您需要sql in关键字

SELECT id, title FROM tablename WHERE id IN (1, 2, 4, 5, 6, 7)

您可以使用以下方式准备号码列表:

$nums = array(1, 2, 4, 5, 6, 7)
$sql = 'SELECT id, title FROM tablename WHERE id IN (' . implode(',', $nums) . ')';

修改:您可以确保您的输入仅包含array_filter的数字:

$nums = array_filter($nums, 'is_numeric');