я просто хочу удалить старое значение $_POST['subject'] из БД
Уважаемый, Никита из 7"В", не хочу показаться грубым, но для этой задачи оптимальнее использовать настоящую БД (хотя бы PDO + SQLite), а не эмулировать БД на csv-файлах.
А если по существу вопроса, то делается примерно так
<?php
$list = [];
if(($handle = fopen("db/cards.csv", "r")) !== false)
{
while(($data = fgetcsv($handle, 1000, ",")) !== false)
{
$subject = $data[1];
$list[$subject] = $data; //<--- ключевой момент
}
fclose($handle);
}
//теперь в $list только строки с уникальным $subject
print_r($list);
//перезаписываем csv данными из $list
//тут ваш код