array_intersect_key PHP массив с базой данных MYSQL - PullRequest
1 голос
/ 27 января 2010

У меня есть простой массив в PHP, скажем,

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

и я хочу запросить базу данных MYSQL

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

Я только хочу получить строки пересечения между массивом PHP и столбцом индексов базы данных. Так что это приведет к

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

Есть идеи? Спасибо!

1 Ответ

4 голосов
/ 27 января 2010

Вы хотите ключевое слово 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');
...