Суть кода, это обернуть значения массива в кавычки что бы использовать полученную функцией implode строку в запросе к MySQL.
На входе имеем некоторый массив кодов товаров, и нужно удалить из таблицы все товары, кроме тех, коды которых есть в массиве xml_ids.
Так как код товара это строка, по этому в запросе её нужно обернуть в кавычки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$xml_ids=[ 11111, 033333, 444444, 5555555 ]; $xml_ids = (function()use($xml_ids) { foreach ($xml_ids as &$value) { $value = "'{$value}'"; } return $xml_ids; })(); $xml_ids = rtrim(implode(',', $xml_ids), ','); $query="DELETE FROM {$table_name} WHERE XML_ID NOT IN({$xml_ids})"; |
Полезная штука, но не понял зачем тримать запятую с конца ведь имплод не ставит запятую в конце!